1

我正在编写一个 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)

谢谢您的回答。

4

2 回答 2

4

使用列表推导:

lst = [tuple(line.rstrip().split(',')) for line in fin]

(不要命名您的变量list;它会影响内置变量并可能导致意外错误)。

于 2013-02-05T16:03:53.527 回答
2

Python 随附电池!如果您需要读取 csv 文件,只需使用csv 模块

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)]
于 2013-02-05T16:14:10.667 回答