텍스트 파일에서 디렉토리 목록을 읽고이를 사용하여 디렉토리를 새 위치에 복사하려고합니다. 아래의 코드는 목록의 마지막 항목에 대해 "#Perform 복사 또는 파일 이동"루프 만 완료하는 것으로 보입니다. 누군가는 왜 방향으로 나를 가리켜 주실 수 있습니까? readlines()
에 의해 반환목록의 마지막 항목에 대해서만 실행되는 중첩 for 루프
import os
import shutil
operation = 'copy' # 'copy' or 'move'
text_file = open('C:\User\Desktop\CopyTrial.txt', "r")
lines = text_file.readlines()
for line in lines:
new_file_name = line[47:]
root_src_dir = os.path.join('.',line)
root_target_dir = os.path.join('.','C:\User\Desktop' + new_file_name)
# Perform copy or move files.
for src_dir, dirs, files in os.walk(root_src_dir):
dst_dir = src_dir.replace(root_src_dir, root_target_dir)
if not os.path.exists(dst_dir):
os.mkdir(dst_dir)
for file_ in files:
src_file = os.path.join(src_dir, file_)
dst_file = os.path.join(dst_dir, file_)
if os.path.exists(dst_file):
os.remove(dst_file)
if operation is 'copy':
shutil.copy(src_file, dst_dir)
elif operation is 'move':
shutil.move(src_file, dst_dir)
text_file.close()
'lines'의 마지막'line'을 의미합니까? – Barmar
'root_src_dir'을 출력하고 복사 할 파일이 있는지 확인하십시오. – Barmar
명령 프롬프트에서 재귀 적 디렉토리 복사 만 할 수있는 이유는 무엇입니까? – Barmar