2

我尝试使用shutil但python调试器抛出错误..我能知道这是为什么吗?还有其他方法吗?

path = "C:\\Program Files (x86)"
if os.path.exists(path):
    src= "C:\\Program Files (x86)\\abc\\xyz\\QuickTest\\Scripts\\RouterTester900\\Diagnostic\\RouterTester900SystemTest"
else:
    src= "C:\\Program Files\\abc\\xyz\\QuickTest\\Scripts\\RouterTester900\\Diagnostic\\RouterTester900SystemTest"
dest = "C:\\Sanity_Automation\\"
shutil.copy(src,dest)

更新:

收到此错误:

Traceback (most recent call last):
     File "C:\Sanity_Automation\Work_Project\copy.py", line 15, in <module>
shutil.copy(src, dest)
     File "C:\Sanity_Automation\Python272\lib\shutil.py", line 116, in copy
copyfile(src, dst)
     File "C:\Sanity_Automation\Python272\lib\shutil.py", line 81, in copyfile
with open(src, 'rb') as fsrc:
     IOError: [Errno 13] Permission denied: 'C:\\Program Files (x86)\\Agilent\\N2X\\QuickTest\\Scripts\\R
4

2 回答 2

2

使用shutil 实现您想要的正确方法,因此您可能应该了解它失败的原因,而不是寻找替代方案。

你回溯显示:

IOError: [Errno 13] Permission denied: 'C:\\Program Files (x86)\\Agilent\\N2X\\QuickTest\\Scripts\\R

使用替代复制方法将无法解决权限问题。正如 Torxed 在他的回答中所说,您很可能在 Windows 7 下运行,其中 Program Files 目录受到限制性权限。

附带说明一下,您应该考虑通过在文字前面加上 : 来对包含反斜杠的路径使用原始字符串r

path = r"C:\Program Files (x86)"
于 2013-05-14T11:25:33.320 回答
1
import os
os.system('mv /src/path /new/path')

或者

import os
os.rename('/source/path', '/source/new_path')

除了shutils之外,您只有两个选择(但两者都不能解决您的问题)

其次,您最初的问题很可能是因为您正在运行 Win7(或 64 位服务器操作系统)并且您没有以管理员身份运行 cmd.exe 提示(或 python 脚本)。
普通用户禁止管理C:\Program Files\(和(x86))。

试着把你的脚本放进去C:\Users\<your username>\Desktop\quicktest\,看看你是否得到同样的错误。或以管理员身份运行 cmd.exe 或 python 脚本。

于 2013-05-14T11:16:33.590 回答