Python 2.7 Python使用shutil.copyFile将文件从一个目录从网络位置复制到本地桌面,显示了den4ied权限

Python 2.7 Python使用shutil.copyFile将文件从一个目录从网络位置复制到本地桌面,显示了den4ied权限,python-2.7,shutil,Python 2.7,Shutil,我正在将软件的构建文件从网络位置的目录复制到本地计算机。 我首先读取build.txt文件来读取最新的构建版本。 然后,我可以将最新生成文件复制到本地计算机,即将最新生成文件部署到本地计算机 读取构建文本文件后,我已正确设置了src目录路径。 我将路径打印到控制台,并将路径复制到windows explore,以检查路径是否正确。路径存在 我正在使用shutil.copyFile 当我运行代码时,权限被拒绝。完整的错误跟踪是: Traceback (most recent call last):

我正在将软件的构建文件从网络位置的目录复制到本地计算机。 我首先读取build.txt文件来读取最新的构建版本。 然后,我可以将最新生成文件复制到本地计算机,即将最新生成文件部署到本地计算机

读取构建文本文件后,我已正确设置了src目录路径。 我将路径打印到控制台,并将路径复制到windows explore,以检查路径是否正确。路径存在

我正在使用shutil.copyFile

当我运行代码时,权限被拒绝。完整的错误跟踪是:

Traceback (most recent call last):
  File "C:\Webdriver\ClearCore 501 Regression Test\ClearCore 501 - Regression Test\Base\BaseTestCase.py", line 34, in setUpClass
    shutil.copyfile(src2, dest_file)
  File "C:\Python27\lib\shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 13] Permission denied: '\\\\STORAGE-1\\Builds\\clearcore4\\5_1_1\\engine\\ClearCore4_b5_1_1_v5_1_1_5306\\deploy\\engine'
读取build.txt文件并将文件从src复制到目标的Python代码段如下:

from ConfigParser import SafeConfigParser
import shutil

class BaseTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
    # copy build file
    build_text_file_directory = r"\\STORAGE-1\Builds\clearcore4\autotest"
    dest_file = r"C:\Riaz\clearcore_5_1_1_copy_test_using_shutil_tool\engine"
    build_config = SafeConfigParser()
    fn = os.path.join(build_text_file_directory, "5_1_1_build.txt")
    build_config.read(fn)
    label = build_config.get("build", "label")
    src = r"\\STORAGE-1\Builds\clearcore4\5_1_1\engine\%s" % label
    src2 = os.path.join(src, r"deploy\engine")
    shutil.copyfile(src2, dest_file)
如何解决权限被拒绝的问题并将文件复制到目标? 谢谢
Riaz

我现在已经设法解决了这个问题,问题是它试图复制一个目录。shutilcopyfile复制文件,而不是目录。我已经修改了我的代码以遍历目录并从子目录复制文件。 如果子目录不存在,它将创建它并将文件复制到其中

我的工作代码是:

    build_text_file_directory = r"\\STORAGE-1\Builds\clearcore4\autotest"
    dest = r"C:\Riaz\ClearCore501 - copy latest build copy test\engine"
    build_config = SafeConfigParser()
    fn = os.path.join(build_text_file_directory, "5_1_1_build.txt")
    build_config.read(fn)
    label = build_config.get("build", "label")
    src = r"\\STORAGE-1\Builds\clearcore4\5_1_1\engine\%s\deploy\engine" % label
    for src_dir, dirs, files in os.walk(src):  
        if "gazdb" in dirs:  # Do not copy "gazdb" directory.
            dirs.remove("gazdb")
        dest_dir = os.path.join(dest, src_dir[len(src) + 1:])
        if not os.path.exists(dest_dir):
            os.makedirs(dest_dir)
        for filename in files:
            src_file = os.path.join(src_dir, filename)
            dest_file = os.path.join(dest_dir, filename)
            # print("%s -> %s" % (src_file, dest_file))
            shutil.copyfile(src_file, dest_file)