未找到Python文件错误

未找到Python文件错误,python,filenotfoundexception,Python,Filenotfoundexception,我有一个包含不同子文件夹的文件夹。我必须反复查看所有的文件,检查约翰和何塞的出现,并分别替换为米克尔和穆里尼奥 这是我用Python编写的脚本。它工作正常,但当我遇到.gif文件时,它会给我一个错误,并且不会进一步迭代 你能告诉我为什么吗 错误是 Traceback (most recent call last): File "C:\Users\sid\Desktop\script.py", line 33, in <module> os.chmod(path ,stat

我有一个包含不同子文件夹的文件夹。我必须反复查看所有的文件,检查约翰和何塞的出现,并分别替换为米克尔和穆里尼奥

这是我用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'

使用原始字符串或双黑色斜杠
\\

如果没有
\\
或原始字符串
,“\t”
将转换为选项卡空间:

>>> print 'C:\Users\spemmara\Desktop\test'
C:\Users\spemmara\Desktop   est
使用原始字符串:

>>> print r'C:\Users\spemmara\Desktop\test'
C:\Users\spemmara\Desktop\test
双黑斜杠:

>>> print 'C:\\Users\\spemmara\\Desktop\\test'
C:\Users\spemmara\Desktop\test
rootdir = 'C:\\Users\\spemmara\\Desktop\\test'
更新:

'C:\Users\sid\Desktop\test\images/ds\u dataobject.gif.bak'

查看试图在单个路径中混合
\
/
的错误,最好使用
os.path.join

path = os.path.join(subdir, file)

除了hcwhsa的答案外,您还可以通过使用双反斜杠来进行艰苦的工作:

>>> print 'C:\\Users\\spemmara\\Desktop\\test'
C:\Users\spemmara\Desktop\test
rootdir = 'C:\\Users\\spemmara\\Desktop\\test'
我昨天丢了水晶球,但我想另一件给你带来问题的事情是,当你的程序创建一个
gif
文件时,你正试图向它写入文本

如果您不想这样做,只需使用以下条件进行测试:

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        path=subdir+'/'+file
        print(path)
        os.chmod(path ,stat.S_IWRITE)
        if '.gif' not in path:
            for key,value in searchTerms.items():
                replaceAll(path,key,value)
        os.chmod(path,stat.S_IREAD)

代码正在运行。它正在替换有穆里尼奥的文件,但是当有一个.gif文件时,它给出了一个错误。这就是原始字符串的问题了吗?我在其他文件夹中也尝试过,比如C:\Users\spemmara\Desktop\Source。即使对于这个文件夹,代码也可以工作。它是替换,如果是你提到的问题,那么它不应该给出一个错误。gifs是另一个与rawstring@Wolf它适用于
'Users\spemmara\Desktop\Source'
,因为此字符串不包含任何特殊字符,如
\t
\a
etc@Wolf使用
path=os.path.join(subdir,file)
而不是使用
path=subdir+'/'+文件。