2016-08-30 4 views
1

내 플래시 드라이브 (문자 D :)의 파일을 하드 드라이브의 폴더에 복사하는 Python 프로그램을 만들려고 시도했지만 다음과 같이 나타납니다 PermissionError : [Errno 13] 사용 권한이 거부되었습니다. 'D :'. 다음과 같이Python - Errno 13 파일 복사를 시도 할 때 사용 권한이 거부되었습니다.

내 코드의 문제 부분은 다음과 같습니다 CopyFile 수() 함수가 오류를 반환하는 경우, 실행까지

# Copy files to folder in current directory 
def copy(): 
    source = getsource() 

    if source != "failure": 

     copyfile(source, createfolder()) 
     wait("Successfully backup up drive" 
      "\nPress 'Enter' to exit the program") 

    else: 
     wait("No USB drive was detected" 
      "\nPress 'Enter' to exit") 

# Create a folder in current directory w/ date and time 
def createfolder(): 
    name = strftime("%a, %b %d, %Y, %H.%M.%S", gmtime()) 
    dir_path = os.path.dirname(os.path.realpath(__file__)) 
    new_folder = dir_path + "\\" + name 
    os.makedirs(new_folder) 

return new_folder 

모든 것이 잘 실행 것으로 보인다. getsource() 대신을 파일 대상으로 바꾸고 대신 new_folder 디렉토리를 제외하고 동일한 권한 오류를 반환했습니다.

다른 게시물을 여러 개 읽었지만 그 중 아무 것도 내 사례와 관련없는 것 같습니다. 두 위치 모두에 대한 전체 관리자 권한이 있습니다. 도움이 될 것입니다.

+0

'D :'디렉토리를 파일처럼 열려고 시도했을 수 있으므로 이런 일이 벌어 졌을 수도 있습니다. – Harrison

+0

@ 하리슨 내부에 파일을 복사 할 수 있도록 디렉토리를 열 수있는 방법이 있습니까? –

+0

예 답변을 게시합니다. – Harrison

답변

0

위의 내 의견에 언급했듯이 D: 디렉토리를 열려고 시도하는 것처럼 파일 인 것처럼 보이며 파일이 아니기 때문에 작동하지 않습니다. 디렉토리입니다.

os.listdir()을 사용하여 원하는 디렉토리 내의 모든 파일을 나열한 다음 shutil.copy()을 사용하여 원하는대로 파일을 복사하십시오. 여기

그 각각에 대한 문서입니다 :

os.listdir()

shutil.copy() (당신은이 함수에 각 파일을 전달합니다)

(당신은이 기능에 대한 전체 파일 경로를 통과합니다)

기본적으로 디렉터리의 모든 파일을 all_the_files = os.listdir(/path/to/file)과 같이 변수에 저장 한 다음 과 같은 방법으로 all_the_files을 반복 한 다음 shutil.copy()을 사용하여 원하는대로 복사 할 수 있습니다.

+0

그래서, 완벽하게 작동하지만 지금은 여전히 ​​복사하려고하는 폴더에 대해 동일한 오류가 발생하고 있습니다 ... 어떤 제안이 있습니까? –

+0

문서를보고 특정 디렉토리에 복사하기 위해 올바른 shutil 메소드가'copy()'라는 것을 알았습니다. 'copyfile()'은 파일의 내용을 다른 파일에 복사합니다. 답변을 주셔서 다시 한 번 감사드립니다! –

+0

@QuintonShips 다행스럽게 도와 줄 수있었습니다. :) – Harrison