0
#!/usr/bin/env python

from os import path, access, R_OK  # W_OK for write permission.
import os`enter code here`
import shutil
import sys
import glob

PATH = 'C:\Windows\PsExec.exe'
PATH2 = 'C:\Windows'
SHARE_PATH = '\\\\blue\\install$\\Tools\\Library'
dirList=os.listdir(SHARE_PATH)

if path.exists(PATH) and path.isfile(PATH) and access(PATH, R_OK):
    print ("File exists and is readable")
elif path.exists(SHARE_PATH) and access(SHARE_PATH, R_OK):
    shutil.copyfile(SHARE_PATH, PATH2)
    print ("Copying File")

エラーなしでこのスクリプトを実行できますが、何らかの理由で
共有ドライブからファイルをコピーできません...そしてファイルを実行しようとすると、次のエラーが発生しました。

Traceback (most recent call last):
  File ".\file_reader3.py", line 18, in <module>
    shutil.copyfile(SHARE_PATH, PATH2)
  File "C:\Python33\lib\shutil.py", line 109, in copyfile
    with open(src, 'rb') as fsrc:
PermissionError: [Errno 13] Permission denied: '\\\\blue\\install$\\Tools\\Library'
4

2 に答える 2

2
from os import path, access, R_OK  # W_OK for write permission.
import os
import shutil
import sys
import glob


PATH = 'C:\Windows\PsExec.exe'
SHARE_PATH = '\\\\blue\\sol\\Tools\\Library\\PsExec.exe'

#This part Will check if the file Exist
if path.exists(PATH) and path.isfile(PATH) and access(PATH, R_OK):
    print ("File exists and is readable")
#This part will Check if the file exist on the server, and copy to the local machine
elif path.exists(SHARE_PATH) and \
     path.isfile(SHARE_PATH) and \
     access(SHARE_PATH, R_OK):
    shutil.copy(SHARE_PATH, PATH)
    print ("Copying File")
于 2013-04-02T13:24:20.900 に答える
2

「shutil.copyfile(SHARE_PATH, PATH2)」という行は、あるディレクトリ「\\blue\install$\Tools\Library」を別のディレクトリ「C:\Windows」にコピーしようとしているようです。copyfile は、ファイル用です。

また、ドキュメント ( http://docs.python.org/2/library/shutil.html ) に従って、完全なファイル パスと名前を指定する必要があります。したがって、「\\blue\install$\Tools\Library」がファイルであると仮定すると (ディレクトリだと思いますが)、「c:\windows」というファイルにコピーしようとしていますが、そのディレクトリにはコピーされません。そのため、2 番目のパラメーターとして「c:\windows\filename」を指定する必要があります。

ディレクトリ全体をコピーしようとしている場合は、shutil.copytree を試してください。

また、最初にアクセス許可をテストするよりも、ファイルを開いて例外をキャッチする方がおそらく良いでしょう。http://docs.python.org/2/library/os.html#files-and-directoriesを参照してください

于 2013-03-29T20:40:03.040 に答える