Python shutil.copy2()函数抛出“无此文件”错误

时间:2019-11-26 06:58:10

标签: python file-management

我写了一个简单的脚本来在一个目录中搜索文件类型,然后将其复制并移动到另一个目录。该脚本将在源目录中打印第一个搜索到的文件,但是当它进入for循环时,它将引发“ FileNotFoundError”。有人可以看一下,然后告诉我我做错了吗?我在路径中使用了单斜杠,在正斜杠和后斜杠中使用了斜杠,现在我在路径的前面使用了转义斜杠,并带有“ r”,这没关系,它仍然会给出错误。

谢谢。

import os
import fnmatch
import shutil

src = (r"C:\\Users\\myName\\Documents\\development")
dst = (r"C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Data\\myData")

print(os.listdir(src)) #this will display everything in the src directory.


for file_name in os.listdir(src):
 if fnmatch.fnmatch(file_name, "*.ibd"):
    print(file_name)   #This will only print the first searched for file type.
    shutil.copy2(file_name, dst) #if I comment out this line, it will print all .ibd files.

1 个答案:

答案 0 :(得分:1)

感谢furas的帮助。我必须了解您在说什么以及它如何适合代码结构,但我知道了。非常感谢您的协助。我希望这对其他人有帮助。

import os
import fnmatch
import shutil

src = (r"C:\\Users\\myName\\Documents\\development")
dst = (r"C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Data\\myData")

for file_name in os.listdir(src):
    if fnmatch.fnmatch(file_name, "*.ibd"):
        print(file_name)
        shutil.copy2(os.path.join(src, file_name), dst)