2016-11-12 2 views
0

저는 파이썬 shutil 모듈을 사용하여 FolderA에서 FolderB로 4 개의 txt 파일을 옮깁니다. 나는 다음과 같은 코드를 실행하면파이썬에서 텍스트 파일을 다른 폴더로 옮길 수없는 이유는 무엇입니까?

나는 추적 백 오류 얻을 :

shutil.move('C:\Users\Student\Desktop\FolderA.txt', 'C:\Users\Student\Desktop\FolderB') 

을하지만 경로가 실제로 않습니다 내가이 명령을 할 때 잘 작동하기 때문에 존재하고 (전체 폴더 A를 이동하는 것을 알고 txt 파일 포함) : FolderB :

shutil.move('C:\Users\Student\Desktop\FolderA', 'C:\Users\Student\Desktop\FolderB') 

그냥 복사하지 않고 텍스트 파일을 이동할 수있는 방법은 무엇입니까? 내가 알고 싶었던 경우에 대비하여 Python Shell 2.7을 사용하고 있습니다.

+0

추적 오류는 무엇입니까? 왜'FolderA.txt'가 4 개의 텍스트 파일과 같다고 생각하십니까? 'fnmatch' 또는'glob' 모듈을 조사하고 싶을 수도 있습니다. – AChampion

답변

1

1가 제대로 경로 구분 기호를 탈출, 중 이중 백 슬래시를 사용하거나

다음은이 명령은 의도 한 일을하지 않는 등의 원시 문자열을 표시하기 위해 앞에 r''를 추가, 그것은 파일을 이동하려고 FolderA.txt를 FolderB로 호출하십시오.

아래 코드는 의도 한대로 수행해야합니다. glob 모듈을 사용하여 FolderA의 모든 txt 파일을 grep 한 다음 FolderB로 1을 이동하십시오.

import glob 
# this will move all txt file from FolderA into FolderB 
# but you need to ensure FolderB exists, else it might create a file named FolderB instead 
for f in glob.glob(r'C:\Users\Student\Desktop\FolderA\*.txt'): 
    shutil.move(f, r'C:\Users\Student\Desktop\FolderB') 
+0

그냥 shutil 모듈을 사용할 수 있습니까? – YoungCoder

+0

이것은 내가 사용하도록 지시 한 것입니다. – YoungCoder

+1

그게 가능한지 모르겠지만 glob 모듈을 사용하는 대신 os.listdir()을 사용하여 모든 파일 목록을 가져올 수 있습니다. 필터링하지 않고 폴더에서 모든 것을 이동하려는 경우 .txt 파일을 사용하고 shutil 만 사용하면 가능합니다. – Skycc

0

Windows 경로를 사용할 때 이중 백 슬래시를 사용해야합니다. 그렇지 않으면 다음 문자가 이스케이프 처리되고 따라서 IOError: [Errno 2] No such file or directory:...'이 발생합니다. 나는.

shutil.move('C:\\Users\\Student\\Desktop\\FolderA.txt', 'C:\\Users\\Student\\Desktop\\FolderB') 
+0

이중 백 슬래시가 여전히 동일한 오류를 발생 시켰음에 유의해야합니다. – YoungCoder

관련 문제