我正在尝试将一个csv文件导入为列表:
file = open('curr.csv', 'rt')
f = file.read()
f = f.split(',')
print(f)
CSV文件中仅有'GBP, USD',因此我想要得到列表['GBP', 'USD']。不过我实际得到的结果是:
['GBP', 'USD\n']
如何避免在最后一个值上出现 \n?
你需要剥离你的行,但是作为一种Pythonic方式,你可以使用csv
模块来处理csv
文件:
>>> import csv
>>> with open('curr.csv', 'rb') as csvfile:
... spamreader = csv.reader(csvfile, delimiter=',')
... print list(spamreader)
csv
文件行的嵌套列表。您可以使用 reader
对象的 next()
方法来获取列表中的第一行:>>> import csv
>>> with open('curr.csv', 'rb') as csvfile:
... spamreader = csv.reader(csvfile, delimiter=',')
... print spamreader.next()
如果你想要列表中的所有行,可以使用嵌套的列表推导式:
>>> import csv
>>> with open('curr.csv', 'rb') as csvfile:
... spamreader = csv.reader(csvfile, delimiter=',')
... print [j for i in spamreader for j in i]
csv
文件的正确方式。请注意,我们在这里不仅仅是为 OP 提供临时解决方案! - Mazdakcsv
文件有各种“正确的方法”。在这种情况下,使用 csv
模块会增加处理多行的复杂性。例如,你的答案给出了 [['GBP', ' USD']]
,这不是问题所要求的。因此,在这种情况下,使用更简单的方法可以避免一些混淆。 - TheBlackCat
csv
模块。 - user1907906