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()
更好的做法
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()