반응형
https://walkaroundthedevelop.tistory.com/99?category=897569
폴더 안에 파일명을 정리하고 싶어서, 스크립트를 짜보려고 하다가,
문득 제 블로그 중에서 비슷한 일을 했던 것을 발견하고, 거기서 조금만 추가해서 스크립트를 다시 만들어 보려고 합니다.
예상 시나리오는 다음과 같습니다. (실제 예)
폴더 안에 동영상 파일들이 많은데, 그 동영상 파일들의 제목들이 너무 길어서 정리가 잘 안되서,
날짜와 폴더이름, 순서로 정리를 하고자 싶을 때, 스크립트를 사용해서 간단하게 정리 하는 스크립트를 만들었습니다.
import os
def main():
# directory 선택하기
ldir = os.listdir()
ldir.remove("change_file_names.py") # remove this script
print("directories in current directory: ", ldir)
print("Select dir to change : ")
iput1 = input()
# prefix 있으면 넣어봅시다 없으면 엔터
print("if you want to enter prefix, input. If not, press enter.")
iput2 = input()
print(f"prefix is {iput2}")
prefix = ""
if len(iput2.strip()) > 0:
prefix += iput2 + "_"
# 선택된 directory 살펴보기
ldir2 = os.listdir(iput1)
print("files in selected directory: ", ldir2)
print(f"total of {len(ldir2)} files")
# os.rename 을 사용한 파일이름 변경
for count, filename in enumerate(ldir2):
filename.split(".")[-1]
dst = prefix + iput1 + "_" + str(count) + "." + filename.split(".")[-1]
src = f"{iput1}/{filename}"
dst = f"{iput1}/{dst}"
print(f"rename src {src} to dst {dst}")
os.rename(src, dst) # 실제 파일이름 변경
if __name__ == '__main__':
main()
여기서 ldir2 을 sorting하는 코드를 한 줄 넣어주는 것도 좋습니다.
저는 기존의 파일명에 기준하여서 sorting을 진행하였습니다.
idir2.sort(key=lambda x: x.split(".")[-2].split("_")[-1])
반응형
'Utils' 카테고리의 다른 글
랜덤으로 파일 추출하는 파이썬 스크립트 (0) | 2022.04.21 |
---|---|
파이썬을 이용해서 디렉토리 안의 파일들 이름 바꾸기! (리눅스에서) (0) | 2022.01.19 |
python으로 yolov5 label을 교체하는 script 만들기 (0) | 2021.12.24 |
awk를 이용해서 앞 뒤로 string 붙이기 (0) | 2021.12.21 |