python - Errno 2 使用 python shutil.py 文件目标没有这样的文件或目录

标签 python xml linux file shutil

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

我编写了以下方法,它接受 2 个参数:src(正在收集的文件或目录的路径)和目标(将收集的日志/目录粘贴到的所需新路径)。

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] No such file or directory: 'collectedLogs/testrun/logs/logger.xml'

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

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

会不会是因为这是一个.xml文件?

最佳答案

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

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

IOError: [Errno 2] No such file or directory: 'backup/today/my_file.txt'

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

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

关于python - Errno 2 使用 python shutil.py 文件目标没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693272/

相关文章:

python - 如何使用python在spark SQL中传递变量?

java - 线性布局 : Aligning to the Right of the parent

iphone - 如何使用Linux系统进行iphone开发?

xml - 标签内的 Unix XML 解析

Linux鞭尾: Unable to display a huge Licensing file

python - 如何可逆地将 Pandas 数据帧存储到磁盘或从磁盘加载

python - 对具有多个条件的分组数据框进行自定义过滤器

Python加载带有UTF-8 BOM header 的json文件

php - 确定 DOMElement 的父节点

java - 我可以将 XText 用于涉及 XML 文件类型的 DSL 吗?