하위 이름에있는 마지막 네 개의 문자를 제거하여 하위 디렉토리에 저장된 파일의 이름을 바꾸려고합니다. 나는 일반적으로 찾아서 사용 하나의 디렉토리에있는 파일의 이름을 변경 glob.glob()
를 사용os.walk()을 사용하여 파일의 이름을 바꾸는 방법은 무엇입니까?
import glob, os
for file in glob.glob("C:/Users/username/Desktop/Original data/" + "*.*"):
pieces = list(os.path.splitext(file))
pieces[0] = pieces[0][:-4]
newFile = "".join(pieces)
os.rename(file,newFile)
을하지만 지금은 모든 하위 디렉토리에 위를 반복합니다. 나는 os.walk()
를 사용하여 시도 :
import os
for subdir, dirs, files in os.walk("C:/Users/username/Desktop/Original data/"):
for file in files:
pieces = list(os.path.splitext(file))
pieces[0] = pieces[0][:-4]
newFile = "".join(pieces)
# print "Original filename: " + file, " || New filename: " + newFile
os.rename(file,newFile)
이
print
문이 제대로 원래 내가 찾고 있어요 새로운 파일 이름을 인쇄하지만, 다음과 같은 오류 os.rename(file,newFile)
반환
Traceback (most recent call last):
File "<input>", line 7, in <module>
WindowsError: [Error 2] The system cannot find the file specified
을 나는이 문제를 해결 수있는 방법 ?
:
os.walk
에 의해 반환 된tuple
의 첫 번째 항목은 현재 경로가 그래서 그냥 파일 이름으로 결합os.path.join
를 사용하다 도보로 같은 디렉토리에 ... –@RafaelRodrigoDeSouza - 고마워, 당신은 niemmi의 대답 =에 의해 설명 된대로 맞습니다 – Joseph