1

使用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)
4

1 回答 1

2

你想做的是访问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()

于 2018-07-26T14:19:39.817 回答