循环并更改文件的第一个字母

时间:2017-10-18 04:49:46

标签: python os.walk

我在第一行为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'

但事情是文件存在于文件夹中,它就像其他文件一样,如果我删除文件然后我得到相同的错误但文件名不同

任何想法?

1 个答案:

答案 0 :(得分:2)

使用os.path.join,并使用您的文件名加入您的根,因为open需要完全限定的路径才能正常工作。

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

rootos.walk返回的第一个值。