2013-05-14 101 views
1

我嘗試過使用shutil,但是python調試器正在拋出錯誤。我可以知道爲什麼會這樣?有沒有其他方法?如何在不使用shutil的情況下將文件從一次位置複製到另一個位置

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
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腳本。

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)"