我正在尝试循环浏览目录。目标是打开目录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.
将
f.close()
移动到循环外部。每次循环运行时,您都将关闭文件首先,我认为这部分代码是错误的:
因为这将把最后一个文件名分配给
ff
。所以我将下面的代码移到这个for循环下。现在它将为所有文件运行我相信这个代码应该是有效的:
编辑:如果
open('ff','r')
行不起作用,则可能是您给出的路径错误。什么是filenames
的内容?你为什么要在结尾加上d.txt
??请编辑您的帖子并添加这些详细信息相关问题 更多 >
编程相关推荐