我正在编写一个python脚本来读取一个由逗号分隔的三列组成的文件,创建每行的元组,并列出这些元组。使用以下脚本,我实现了我想要的;我只是想知道是否有一种更简单/更优雅的方法,而不是单独编写以下每个步骤。
import sys
fin=open(sys.argv[1],'r')
list = []
for line1 in fin:
line2 = line1[:-1]
line3 = line2.split(',')
line4 = tuple(line3)
list.append(line4)
print(list)
感谢您的回答。
答案 0 :(得分:4)
使用列表理解:
lst = [tuple(line.rstrip().split(',')) for line in fin]
(不要将变量命名为list
;它会影响内置函数并导致意外错误。)
答案 1 :(得分:2)
Python附带电池!如果您需要阅读csv文件,只需使用csv module:
import sys, csv
with open(sys.argv[1]) as f:
lst = list(csv.reader(f))
请注意,这会创建一个列表列表,如果您因某些原因需要元组,那么
with open(sys.argv[1]) as f:
lst = [tuple(row) for row in csv.reader(f)]