> 백엔드 개발 > 파이썬 튜토리얼 > 복잡한 폴더도 몇 분 만에 정리할 수 있도록 Python으로 작은 도구를 작성했습니다!

복잡한 폴더도 몇 분 만에 정리할 수 있도록 Python으로 작은 도구를 작성했습니다!

WBOY
풀어 주다: 2023-04-11 20:19:18
앞으로
1518명이 탐색했습니다.

복잡한 폴더도 몇 분 만에 정리할 수 있도록 Python으로 작은 도구를 작성했습니다!

짜증나네요

저는 데스크탑 정리를 좋아하는 사람이 아니라는 점을 인정합니다. 왜냐하면 지저분한 데스크탑이 파일을 더 쉽게 찾을 수 있다고 생각하기 때문입니다.

하하 그런데 요즘 바탕화면이 너무 지저분해서 더 이상 볼 수도 없고 화면을 거의 다 차지할 정도예요. 클릭 한 번으로 바탕 화면을 정리할 수 있는 소프트웨어는 많지만, 다른 경로의 파일도 정리해야 하기 때문에 이 요구 사항을 충족하기 위해 Python을 사용하려고 생각했습니다.

복잡한 폴더도 몇 분 만에 정리할 수 있도록 Python으로 작은 도구를 작성했습니다!

효과 표시

파일을 사진, 비디오, 오디오, 문서, 압축 파일, 일반 형식, 프로그램 스크립트, 실행 프로그램 및 글꼴 파일의 9가지 주요 범주로 나누었습니다.

# 不同文件组成的嵌套字典
file_dict = {
'图片': ['jpg','png','gif','webp'],
'视频': ['rmvb','mp4','avi','mkv','flv'],
"音频": ['cd','wave','aiff','mpeg','mp3','mpeg-4'],
'文档': ['xls','xlsx','csv','doc','docx','ppt','pptx','pdf','txt'],
'压缩文件': ['7z','ace','bz','jar','rar','tar','zip','gz'],
'常用格式': ['json','xml','md','ximd'],
'程序脚本': ['py','java','html','sql','r','css','cpp','c','sas','js','go'],
'可执行程序': ['exe','bat','lnk','sys','com'],
'字体文件': ['eot','otf','fon','font','ttf','ttc','woff','woff2']
}
로그인 후 복사

file_dict는 우리가 공부하고 일할 때 흔히 사용하는 형식을 담은 스스로 정의한 사전입니다. 일반적으로 사용되는 형식을 모든 사람에게 설명해야 합니다. 자주 사용하지만 어떤 범주에 넣어야 할지 모르는 파일은 여기에 저장됩니다.

참고: 컴퓨터에 더 많은 파일 형식이 있는 경우 위의 file_dict 사전만 수정하면 됩니다.

개발 아이디어

이러한 작은 도구를 개발하려면 총 3개의 Python 라이브러리, 즉 os 모듈, Shutil 모듈 및 glob 모듈이 함께 사용되어 파일과 폴더를 처리합니다.

전체 개발 단계의 일반적인 아이디어는 다음과 같습니다.

  • ① 파일 경로를 임의로 지정합니다.
  • ② 현재 파일 경로 아래의 모든 파일을 가져오고 각 파일에 해당하는 접미사를 가져옵니다. 각각 파일이 지정된 중첩 사전에 있는지 여부를 확인하고 해당 파일 카테고리를 반환합니다.
  • ④ 각 파일 카테고리의 폴더가 존재하는지 확인합니다. 카테고리별로 파일을 저장하려면 새 폴더를 만들어야 하기 때문입니다.
  • ⑤ 각 파일을 해당 카테고리에 복사하세요.
  • 전체 코드는 다음과 같습니다. [자세한 메모 포함]
# 导入相关库
import os
import glob
import shutil
# 采用input()函数,动态输入要处理的文件路径。
path = input("请输入要清理的文件路径:")
# 定义一个文件字典,不同的文件类型,属于不同的文件夹,一共9个大类。
file_dict = {
'图片': ['jpg','png','gif','webp'],
'视频': ['rmvb','mp4','avi','mkv','flv'],
"音频": ['cd','wave','aiff','mpeg','mp3','mpeg-4'],
'文档': ['xls','xlsx','csv','doc','docx','ppt','pptx','pdf','txt'],
'压缩文件': ['7z','ace','bz','jar','rar','tar','zip','gz'],
'常用格式': ['json','xml','md','ximd'],
'程序脚本': ['py','java','html','sql','r','css','cpp','c','sas','js','go'],
'可执行程序': ['exe','bat','lnk','sys','com'],
'字体文件': ['eot','otf','fon','font','ttf','ttc','woff','woff2']
}

# 定义一个函数,传入每个文件对应的后缀。判断文件是否存在于字典file_dict中;
# 如果存在,返回对应的文件夹名;如果不存在,将该文件夹命名为"未知分类";
def func(suffix):
for name, type_list in file_dict.items():
if suffix.lower() in type_list:
return name
return "未知分类"
# 递归获取 "待处理文件路径" 下的所有文件和文件夹。
for file in glob.glob(f"{path}/**/*",recursive=True):
 # 由于我们是对文件分类,这里需要挑选出文件来。
if os.path.isfile(file):
 # 由于isfile()函数,获取的是每个文件的全路径。这里再调用basename()函数,直接获取文件名;
file_name = os.path.basename(file)
suffix = file_name.split(".")[-1]
# 判断 "文件名" 是否在字典中。
name = func(suffix)
#print(func(suffix))
# 根据每个文件分类,创建各自对应的文件夹。
if not os.path.exists(f"{path}\{name}"):
os.mkdir(f"{path}\{name}")
# 将文件复制到各自对应的文件夹中。
shutil.copy(file,f"{path}\{name}")
로그인 후 복사

결과는 다음과 같습니다.

앞으로 예상하기

복잡한 폴더도 몇 분 만에 정리할 수 있도록 Python으로 작은 도구를 작성했습니다!Huang은 이 글의 코드를 모든 사람과 공유했습니다. 하지만 저는 이 코드에 대한 시각적 인터페이스를 만들지 않았습니다. 동시에 모든 사람이 프로그램을 패키징하여 다른 사람이 직접 사용할 수 있도록 직접 보낼 수 있기를 바랍니다.

위 내용은 복잡한 폴더도 몇 분 만에 정리할 수 있도록 Python으로 작은 도구를 작성했습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿