循环并更改文件的首字母
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:
其中 root
是 os.walk
返回的第一个值。
我的文件夹里有大约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:
其中 root
是 os.walk
返回的第一个值。