我在第一行为1的文件夹中有大约300个文件,我想将其更改为0,
这是我用来完成任务的一段代码
import os
for root,dirs,files in os.walk('/home/decentmakeover2/try/'):
for file in files:
if file.endswith('.txt'):
with open(file, 'r+b') as f:
line = next(f) # grab first line
old = '1'
new = '0'
f.seek(0)
f.write(line.replace(old, new))
但我收到此错误
Traceback (most recent call last):
File "one.py", line 8, in <module>
with open(file, 'r+b') as f:
IOError: [Errno 2] No such file or directory: 'yield_021.txt'
但事情是文件存在于文件夹中,它就像其他文件一样,如果我删除文件然后我得到相同的错误但文件名不同
任何想法?
答案 0 :(得分:2)
使用os.path.join
,并使用您的文件名加入您的根,因为open
需要完全限定的路径才能正常工作。
with open(os.path.join(root, file), ...) as f:
root
是os.walk
返回的第一个值。