未找到Python文件错误
我有一个包含不同子文件夹的文件夹。我必须反复查看所有的文件,检查约翰和何塞的出现,并分别替换为米克尔和穆里尼奥 这是我用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
.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+'/'+文件。