-
Python에서 파일 이름 정확히 입력하기Tech/Development 2013. 3. 8. 17:05
폴더 내 존재하는 모든 파일 이름을 바꿀 일이 있어, 간단히 파이썬 스크립트를 짜볼까해서 건드렸다가.. 예상외에 문제에 부딪혔다.
os.listdir 통해서 폴더 내 파일이름은 다 가져올 수 있었는데, 파일 이름 변경을 하려니 없는 파일이라고 예외를 출력한다!
oldfilename = pathname + filename newfilename = pathname + format(newname,"05d")+".m2ts") os.rename(oldfilename, newfilename)
OSError: [Errno 2] No such file or directory
oldfilename, newfilename모두 절대경로를 입력하였는데도, 없다고 한다. 혹시나싶어 print로 출력해봐도 정확한데..
이럴 때에는, os.path.joint() 를 이용해야한다. 사용하는 OS에 따라 경로를 나타내는 방식이 조금씩 다른데, Python에서는 파일 경로를 표현함에 있어 os.path.join()을 통해서 출력되는 문자열을 이용해야 제대로 접근할 수 있다. os.rename에 사용되는 문자열을 아래와 같이 설정하자.
oldfilename = os.path.join(pathname, filename) newfilename = os.path.join(pathname, format(newname,"05d")+".m2ts") os.rename(oldfilename, newfilename)
이렇게하면 잘 동작한다. os.path.joint 함수를 사용할 때, 첫번째 인자는 경로를, 두번째 인자에는 파일 이름을 넣으면 된다.