&引用;ValueError:对关闭的文件执行I/O操作;在使用python时

&引用;ValueError:对关闭的文件执行I/O操作;在使用python时,python,file,io,Python,File,Io,我正在使用canopy学习python(第1天) 使用下面的代码,我得到了错误ValueError:I/O操作关闭的文件,没有弹出csv文件或任何更新(我创建了一个名为index.csv的文件) 我试过做一些事情,但似乎没有任何效果。请帮忙 使用append打开csv文件,以便旧数据不会被删除 with open('index.csv', 'a') as csv_file:writer = csv.writer(csv_file) writer.writerow([name, price, da

我正在使用canopy学习python(第1天)

使用下面的代码,我得到了错误
ValueError:I/O操作关闭的文件
,没有弹出csv文件或任何更新(我创建了一个名为
index.csv的文件

我试过做一些事情,但似乎没有任何效果。请帮忙

使用append打开csv文件,以便旧数据不会被删除

with open('index.csv', 'a') as csv_file:writer = csv.writer(csv_file)
writer.writerow([name, price, datetime.now()])
我明白了:

ValueErrorTraceback (most recent call last)
C:\Users\SPINDEX_CODE.py in <module>()
      21 # open a csv file with append, so old data will not be erased
      22 with open('index.csv', 'a') as csv_file:writer = csv.writer(csv_file)
 ---> 23 writer.writerow([name, price, datetime.now()])

 ValueError: I/O operation on closed file
ValueErrorTraceback(最近一次调用上次)
C:\Users\SPINDEX\u CODE.py in()
21#使用append打开csv文件,以便旧数据不会被擦除
22打开('index.csv','a')作为csv_文件:writer=csv.writer(csv_文件)
--->23 writer.writerow([name,price,datetime.now()]))
ValueError:对关闭的文件执行I/O操作
缩进很重要

with
块退出时,文件将自动关闭。因此,您的
writerow
调用是在文件关闭后进行的,因为您已在
块外部使用…as缩进该文件。因此,自然的解决方法是将两行代码移动到
标题下方,并使用…as
标题


请注意,您不能简单地缩进第二行(而不向下移动第一行),因为这将导致该块中的缩进不一致,所以不要这样做。

缩进很重要
with open('index.csv', 'a') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow([name, price, datetime.now()])