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