采用以下代码:
import csv
# import items with first row
inputfile = open('price.csv', 'r')
reader = csv.reader(inputfile)
rows1 = [row for row in reader] # here
# del first row
rows2 = rows1[1:]
print(rows2)
改变
rows1 = [row for row in reader]
进入
rows1 = [row for row in inputfile]
更改输出:
# with 'reader'
[['6004', '240'], ['6004', '350'], ['6004', '350']]
# with 'inputfile'
['6004,240\n', '6004,350\n', '6004,350\n']
是什么引起的?或者说,原则是什么?你知道吗
当您通过迭代或使用
readline
/readlines
之类的函数来读取行时,Python不会去掉换行符。如果所有行都以换行结束,可以手动将其剥离。你知道吗另一件事是,
csv.reader
从file对象中读取行,并创建一个列表迭代器,其中每个列表包含在,
上分割的行的值或您设置的任何分隔符,同时考虑到引号和其他细微差别。你知道吗例如,要获得类似的行为,可以执行以下操作:
file
对象是iterable。迭代file
对象inputfile
返回原始(未分析)行作为字符串对象。你知道吗您可以构造一个
csv.reader
对象来解析这些行。csv.reader
对象也是iterable,遍历它会返回单个CSV记录的字符串列表。你知道吗因此,在
inputfile
上循环时得到的结果与在reader
上循环时得到的结果不同。你知道吗在迭代文件对象inputfile时,需要显式去除空白
相关问题 更多 >
编程相关推荐