我有一个文件夹,里面有不同的子文件夹。我必须反复检查所有的档案,检查约翰和何塞的情况,并分别替换为米克尔和穆里尼奥。
这是我用Python编写的脚本。它工作得很好,但是当我遇到一个.gif
文件时,它会给我一个错误,并且不会继续迭代。
你能告诉我为什么吗?
错误是
Traceback (most recent call last):
File "C:\Users\sid\Desktop\script.py", line 33, in <module>
os.chmod(path ,stat.S_IWRITE)
FileNotFoundError: [WinError 2] The system cannot find the file specified:'C:\Users\sid\Desktop\test\\images/ds_dataobject.gif.bak'
我的代码:
import os,stat
import fileinput
import sys
rootdir ='C:\Users\spemmara\Desktop\test'
searchTerms={"John":"Mikel", "Jose":"Mourinho"}
def replaceAll(file,searchExp,replaceExp):
for line in fileinput.input(file, inplace=1):
if searchExp in line:
line = line.replace(searchExp,replaceExp)
sys.stdout.write(line)
for subdir, dirs, files in os.walk(rootdir):
for file in files:
path=subdir+'/'+file
print(path)
os.chmod(path ,stat.S_IWRITE)
for key,value in searchTerms.items():
replaceAll(path,key,value)
os.chmod(path,stat.S_IREAD)
除了hcwhsa的答案外,您还可以通过使用双反斜杠来进行艰苦的工作:
我昨天丢了我的水晶球,但我想另一个问题是,当你的程序发现一个
gif
文件时,你正试图向它写入文本。如果你不想这样做,就用一个条件来测试它:
使用原始字符串或双黑斜杠
\\
:如果没有
\\
或原始字符串'\t'
,则转换为制表符空间:带原始字符串:
双黑斜杠:
更新:
看看你试图在单一路径中混合
\
和/
的错误,最好使用os.path.join
:相关问题 更多 >
编程相关推荐