:다른 디렉터리에서 파일을 하나의 공용 디렉터리로 이동하고 이름을 바꾸는 방법은 무엇입니까? 다음 디렉토리 구조를 감안할 때
dir/2012-01-01/employee.csv.bz2
dir/2012-01-02/employee.csv.bz2
dir/2012-01-03/employee.csv.bz2
dir/2012-01-04/employee.csv.bz2
dir/2012-01-05/employee.csv.bz2
내가 .csv
에 csv.bz2
에서 확장자 이름을 변경하고 새 폴더로 .csv
확장자를 가진 파일 만 이동 싶습니다했다
dir/all_files
나는 시도 무엇 이름은 바뀌지 만 파일을 새로운 방향으로 이동하지는 못합니다.
path = 'dir/'
os.mkdir('dir/all_files')
extensions = ('.csv')
for folderName, subfolders, filenames in os.walk(path):
for filename in filenames:
ext = os.path.splitext(filename)[-1].lower()
if ext in extensions:
infilename = os.path.join(folderName, filename)
newname = os.path.join('dir', 'all_files', filename.replace('.csv.bz2', '.csv'))
output = os.rename(infilename, newname)
나는 모든
employee.csv
로 표시되는 파일을 이동할 때문에
output = os.rename(infilename, newname)
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'dir/2012-01-01\\employee.csv.bz2' -> 'dir/all_files\\employee.csv'
그것은 물론 의미가 있습니다 : 오류에 첫 번째 항목 및 결과를 이동
.
제 질문은 어떻게 이러한 파일을 all_files
으로 옮길 수 있습니까?
현재 작업 디렉토리가 무엇입니까? 즉, 파이썬 인스턴스가 실행되는 디렉토리입니까? 'dir /'에있는 모든 디렉토리가'2012-'로 시작합니까? –
하나의 디렉토리에 여러 개의'employee.csv' 파일을 가질 수 없기 때문에, 그들이 위치한 디렉토리를 기반으로 개별 이름을 부여해야합니다. –
예,'dir /'은'2012'로 시작하지만 곧'2013'로 바뀔 수 있습니다. 파이썬은'/ usr/bin/python'을 실행하고 현재 작업 디렉토리는'os.getcwd()'가있을 때'/ home/myname /'입니다. 나는'newname'에 밀리 세컨드를 덧붙여서 고유 한 이름을 주려고했지만 여전히 오류가 발생합니다. 시퀀스의 종류를 추가해야한다고 생각합니다. 여기 파이썬 지식이 끝납니다. – Mamba