>source

저는 파이썬을 배우고 있으며 파일 이름 만 바꾸는 아주 간단한 프로그램을 만들었습니다. 모든 문자를 소문자로 만들고 공백과 %20 -밑줄이있는 인스턴스를 'Finished'폴더에 복사합니다. 내 코드를 작성하고 구성하는 더 나은 방법과 접근 방식을 찾고 있습니다.

누구든지 명백한 결함이나 개선 방법을 찾을 수 있습니까? 누군가 조언이 있다면 그것은 좋을 것입니다.

내 코드는 아래에서 찾을 수 있습니다.


import os
from shutil import copyfile
files_to_improve_dir = 'Files to Improve'
finished_files_dir = 'Finished'
print('isdir', os.path.isdir(files_to_improve_dir))
# 1 - copy files into 'finished' folder
for f in os.listdir(files_to_improve_dir):
    copyfile(os.path.join(files_to_improve_dir, f),
             os.path.join(finished_files_dir, f))
for f in os.listdir(finished_files_dir):
    new_filename = f.replace(' ', '_').replace('%20', '_').lower()
    print('f', f, 'new_filename', new_filename)
    if (f != new_filename):
        os.rename(os.path.join(finished_files_dir, f),
                  os.path.join(finished_files_dir, new_filename))


  • 답변 # 1

    사용해보십시오 pathlib 위에 os 파일/글롭 작업을 다룰 때. 훨씬 깔끔한 인터페이스를 가지고 있으며 파이썬 3의 표준 라이브러리의 일부입니다.

    코드의 상수 이름을 CAPITAL_SNAKE_CASE . PEP-8의 권장 지침입니다.

    코드를 각각 단일 작업을 수행하는 개별 함수로 분할합니다.

    코드의 실행 흐름을 if __name__ == "__main__" 블록.

관련 자료

  • 이전 c++ - 이 예제에 따라 템플릿 구조를 만드는 방법은 무엇입니까?
  • 다음 recursion - C ++에서 recursive_copy_if 템플릿 함수 구현