循环并更改文件的首字母

loop and change the first letter of file

我的文件夹里有大约300个文件,第一行是1,我想把它改成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'

但问题是该文件存在于文件夹中,它就像其他文件一样,如果我删除该文件,我会得到同样的错误,但文件名不同

有什么想法吗?

使用 os.path.join,并将您的根目录与您的文件名连接起来,因为 open 需要完全限定的路径才能工作。

with open(os.path.join(root, file), ...) as f:

其中 rootos.walk 返回的第一个值。