Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 复制“树升起”;[Errno 2]没有这样的文件或目录";目的地_Python - Fatal编程技术网

Python 复制“树升起”;[Errno 2]没有这样的文件或目录";目的地

Python 复制“树升起”;[Errno 2]没有这样的文件或目录";目的地,python,Python,我有一个python服务,它在某个时候会将目录从一个位置复制到另一个位置。当服务首次运行时,它会引发一个错误“[Errno 2]没有这样的文件或目录”,将目标报告为问题 [Errno 2] No such file or directory: u'/opt/app/Gemfile.lock' 我不希望目的地在那里,因为我还没有复制它。阅读distutils的文档时,会发现如果路径不存在,它会为您创建路径 #! /usr/bin/env python import distutils.core

我有一个python服务,它在某个时候会将目录从一个位置复制到另一个位置。当服务首次运行时,它会引发一个错误
“[Errno 2]没有这样的文件或目录”
,将目标报告为问题

[Errno 2] No such file or directory: u'/opt/app/Gemfile.lock'
我不希望目的地在那里,因为我还没有复制它。阅读distutils的文档时,会发现如果路径不存在,它会为您创建路径

#! /usr/bin/env python
import distutils.core
import os

files = []
file = {}
file['source'] = "/origin/folder"
file['destination'] = "/destionation/folder"
files.append(file)

def copy_files(files, logger):
    for file in files:
        if file['source'].startswith('/'):
            source = os.path.join(deployment.archive_dir, file['source'][1:])
        else:
            source = os.path.join(deployment.archive_dir, file['source'])
        if os.path.isdir(source):
            distutils.dir_util.copy_tree(source, file['destination'])
        else:
            if not os.path.isdir(file['destination']):
                distutils.dir_util.mkpath(file['destination'])
            distutils.file_util.copy_file(source, file['destination'])

copy_files(files)
这是一条正在抛出的线:

distutils.dir_util.copy_tree(source, file['destination'])

问题是,您没有首先检查文件['destination'],因此,由于该文件不存在,导致引发错误。所以除了检查is.dir(源)之外,还应该检查is.dir(文件['destination'])

问题是,您没有首先检查文件['destination'],因此,由于该文件不存在,会导致引发错误。所以除了检查is.dir(源)之外,还应该检查is.dir(文件['destination'])

如果不是目录,它不应该创建目的地吗?看看这篇帖子:我应该使用shutil over Distils吗?我不知道你可以试试,看看它是否适合你。或者正如我说的,首先检查目的地,看看它是否是正确的路径(就像您使用src时所做的那样,因为您的文件路径格式可能是错误的),如果它不是目录,它不应该创建目的地吗?看看这篇帖子:我应该使用shutil over Distils吗?我不知道你可以试试,看看它是否适合你。或者正如我所说的,首先检查目的地,看看它是否是正确的路径(就像您使用src时所做的那样,因为您的文件路径格式可能是错误的)