CSV 文件不会在 python 中保持打开状态

CSV file wont stay open in python

Using python 3. 在下面的代码中,第二个循环不会打印,不知道为什么。

忽略我正在尝试做的事情,要点是文件在第一个循环之后不可访问...

有什么想法吗?谢谢!!

Import csv
f = open('table.csv')
csv_f = csv.reader(f)

# Convert data entries to integers
for row in csv_f:
    if row[0]!="A": row[1:len(row)]=list(map(int,row[1:len(row)]))
    print(row)

# Print table again
for row in csv_f:
    print(row)

你想做的是访问来自 csv_f 的数据,它是迭代器 - 这意味着它只能完全传递一次,然后你必须再次生成它。

您可以将其列出:

csv_f = list(csv.reader(f))

或者在第二次循环之前再次加载文件。

与此同时,我建议稍微更改您的代码:

with open('table.csv') as f:
    csv_f = list(csv.reader(f))

    # Convert data entries to integers
    for row in csv_f:
        if row[0]!="A": 
            row[1:len(row)]=list(map(int,row[1:len(row)]))
        print(row)

    # Print table again
    for row in csv_f:
        print(row)

这样文件就不会在 with open() as f 语句之外保持打开状态 - 比使用简单的 open()

更好的做法