使用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)
发布于 2018-07-26 22:19:40
您要做的是从以下位置访问数据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()
https://stackoverflow.com/questions/51540770
复制相似问题