【问题标题】:Shutil Copy File claims file not found despite clearly identifying the file in the print window尽管在打印窗口中清楚地标识了文件,但未找到 Shutil Copy File 声明文件
【发布时间】:2023-04-13 19:15:01
【问题描述】:

我有以下代码(文件路径详细信息保持匿名):

def stu_activities():
    downloadsList = os.listdir("***/Downloads")
    destination = "."
    for file_name in downloadsList:
        if file_name.startswith("Stu_"):
            shutil.copyfile(file_name,destination)

stu_activities()

当我运行它时,它给了我这个错误:

FileNotFoundError: [Errno 2] No such file or directory: 'Stu_activity.pptx'

它声称找不到文件但仍然找到它是怎么回事?

【问题讨论】:

    标签: python copy shutil


    【解决方案1】:

    我假设您的真实代码不包含“***/Downloads”,而是包含真实路径。

    os.listdir() 返回文件名,但不是文件名的完整路径。

    shutil.copyfile() 另一方面需要文件的完整路径。 此外,shutil.copyfile() 的目标必须是文件名而不是目录

    def stu_activities():
        dir_to_List = "/your/path/Downloads"
        downloadsList = os.listdir(dir_to_list)
        destination = "."
        for file_name in downloadsList:
            if file_name.startswith("Stu_"):
                shutil.copyfile(
                    os.path.join(dir_to_list, file_name) ,
                    os.path.join(destination, file_name))
    
    stu_activities()
    

    【讨论】:

    • 是的,它确实包含一条真实的路径,只是为了匿名而忽略了这篇文章。它奏效了,谢谢。我明白你做了什么。