错误2使用python shutil.py没有这样的文件或目录作为文件目标

2024-04-26 21:39:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用shuilpython模块复制linux redhat机器上的文件和目录。

我编写了以下方法,其中包含两个参数:src(正在收集的文件或目录的路径)和destination(正在粘贴收集的日志/目录的新路径)。

def copy(src, destination):
    if(os.path.exists(src)):
        if(os.path.isdir(src)):
            if(os.path.exists(destination)):
                shutil.copytree(src, destination+getTimeStamp())
            else:
                shutil.copytree(src, destination)
        else:
            shutil.copy(src, destination)
    else:
        print src+" not found"

我一直很好地使用此方法,但最近运行此代码时遇到错误:

copy("/home/midgar/logs/logger.xml", currentPath+"/testrun/logs/logger.xml")

错误:IOError:[Errno 2]没有这样的文件或目录:“collectedLogs/testrun/logs/logger.xml”

如果要查找的文件或目录是src,我会理解这个错误意味着什么,但这是导致错误的目标。我发现抛出错误的这行代码转到了copy方法中的行:“shuil.copy(src,destination)”。

到目前为止,我的copy方法只是覆盖现有的文件,如果存在现有目录,它将创建一个带有时间戳的新目录。在这种情况下,目标文件无论如何都不存在。那么,有什么问题吗?为什么在目标路径上会出现这种错误(当我通常希望在SRC路径上看到这种错误时)。

可能是因为这是一个.xml文件吗?


Tags: 文件path方法路径src目录ifos
2条回答

当我得到这个错误,通常意味着其中一个文件夹不存在。

我写了一个简单的脚本来测试这个。在下面的脚本中,备份文件夹确实存在,但“今日”文件夹不存在。当我运行脚本时,我得到的错误与您相同。

IOError:[Errno 2]没有这样的文件或目录:“backup/today/my_file.txt”

import shutil
shutil.copy("my_file.txt", "backup/today/my_file.txt")

如果您的所有文件夹都存在,我将检查以确保对它们的权限没有更改。

默认情况下,shutil.copytree()跟随(解析)符号链接。如果符号链接断开,则引发No such file or directory异常。一种解决方法是指定符号链接应通过传递symlinks=True复制为未解析的。

相关问题 更多 >