私はデスクトップを整理整頓するのが好きではないことを認めます。デスクトップが散らかったほうがファイルが見つけやすいと思うからです。
あはは、でも最近デスクトップがごちゃごちゃしてて、ほとんど画面全体を占めていて見えなくなりました。ワンクリックでデスクトップを整理するソフトウェアはたくさんありますが、他のパスにあるファイルも整理する必要があるため、この要件を満たすために 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 ディクショナリを変更するだけで済みます。
このような小さなツールの開発には、os モジュール、shutil モジュール、glob モジュールという合計 3 つの Python ライブラリが必要で、これらはファイルやフォルダーの処理に一緒に使用されます。単に素晴らしいです!
全体の開発手順の一般的な考え方は次のとおりです:
完全なコードは次のとおりです。詳細コード 備考]
# 导入相关库 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}")
結果は次のとおりです。
Huang はこの記事のコードを全員と共有しました。しかし、私はこのコードのビジュアルインターフェイスを作成しませんでした。同時に、誰もがプログラムをパッケージ化して他の人に直接送信して、直接使用できるようにしたいと考えています。
以上が複雑なフォルダーでも数分で整理できる小さなツールを Python で作成しました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。