我尝试使用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
答案 0 :(得分:2)
使用shutil
是实现目标的正确方法,因此您应该理解为什么会失败而不是搜索替代方案。
你追溯显示:
IOError: [Errno 13] Permission denied: 'C:\\Program Files (x86)\\Agilent\\N2X\\QuickTest\\Scripts\\R
使用替代复制方法将无法修复权限问题。正如Torxed在他的回答中所说,你最有可能在Windows 7下运行,其中Program Files目录受到限制性权限。
在旁注中,您应该考虑将raw strings用于包含反斜杠的路径,方法是在文字前加上r
:
path = r"C:\Program Files (x86)"
答案 1 :(得分:1)
import os
os.system('mv /src/path /new/path')
或
import os
os.rename('/source/path', '/source/new_path')
除了shutils之外你还有两个选择(但两者都不能解决你的问题)
其次,您的原始问题很可能是因为您运行的是Win7(或64位服务器操作系统)并且您没有以管理员身份运行cmd.exe promt(或python脚本) 。
管理C:\Program Files\
(和(x86))是普通用户禁止的。
尝试将脚本放在C:\Users\<your username>\Desktop\quicktest\
中,看看是否收到同样的错误。或以管理员身份运行cmd.exe或python脚本。