【发布时间】:2020-11-05 01:08:52
【问题描述】:
我正在尝试遍历目录。目标是打开目录ff 并在文件中进行修改。为什么open (ff, 'r') 不起作用?
文件d.txt 的每一行都有数字和符号x、1、"。我想从每一行中删除这些字符。
import os
filenames= os.listdir (".")
for filename in filenames:
ff = os.path.join(r'C:\Users\V\Documents\f\e\e\data', filename, 'd.txt')
f = open(str(ff),'r') #this line does not open the file
a = ['x','1','"']
lst = []
for line in f:
for word in a:
if word in line:
line = line.replace(word,'')
lst.append(line)
f.close()
我得到的错误:
for line in f:
ValueError: I/O operation on closed file.
【问题讨论】:
-
folders是什么? -
我们看到的代码中没有产生该异常。这里没有 I/O 操作。
-
我相信您正在执行文件打开范围之外的写操作,因此 I/O 错误。
-
不使用\你需要你使用\\
-
那么您在
for word in a的第一次迭代中使用f.close()关闭文件,因此如果文件中有多个单词,它将尝试在下一次迭代中写入已关闭的文件.您必须将该行移出循环。
标签: python valueerror