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 が彼の回答で述べたように、Program Files ディレクトリが制限されたアクセス許可の下にある Windows Seven で実行している可能性が最も高いです。

補足として、リテラルの前に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 以外に 2 つのオプションしかありません (ただし、どちらも問題の解決策ではありません)。

次に、元の問題は、Win7 (または 64 ビット サーバー OS) を実行していて、cmd.exe プロンプト (または python スクリプト) を管理者として実行していないことが原因である可能性が最も高いです。
管理者C:\Program Files\(および (x86)) は、通常のユーザーには禁止されています。

代わりにスクリプトを配置してC:\Users\<your username>\Desktop\quicktest\、同じエラーが発生するかどうかを確認してください。または、cmd.exe または python スクリプトを管理者として実行します。

于 2013-05-14T11:16:33.590 に答える