我想读取csv文件的每一列,并在将它们存储到表中之前进行一些修改.
我有一个csv文件:
"1";"testOne";"ValueOne"
"2";"testTwo";"ValueTwo"
"3";"testThree";"ValueThree"
Run Code Online (Sandbox Code Playgroud)
在这里,我想读取第一个值"1",然后将其存储在变量中,并使用此值执行某些操作,并与其他值类似.但是目前我可以读取整个文件,但找不到连续访问各列的方法.
谢谢.
kgi*_*kis 22
Python有一个内置的csv模块.
import csv
with open('some.csv', 'rb') as f:
reader = csv.reader(f, delimiter=';')
for row in reader:
print row[0]
Run Code Online (Sandbox Code Playgroud)
小智 6
顶部的答案是灵活和pythonic,但如果你想要一些更紧凑和光滑的东西,一次从分隔数据(舒适地适合内存)检索整个列,你也可以尝试这样做:
c_reader = csv.reader(open('test.csv', 'r'), delimiter=';')
# say you want the second column, only...
col_2 = list(zip(*c_reader))[1] # keeping in mind that python is 0-indexed
# or if you want to come back for more later on, you can just do...
columns = list(zip(*c_reader))
Run Code Online (Sandbox Code Playgroud)
比传统的pythonic更具传统性,但仍具有功能性感觉:
# just using a good old list comprehension
col_2 = [x[1] for x in c_reader]
# you could also get all the rows simply in this way
rows = [x for x in c_reader]
row_2 = rows[1]
Run Code Online (Sandbox Code Playgroud)
现在出去与iterables成为一体!;-)