1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。
你只需要修改源代碼主程序中調(diào)用 auto_organize函數(shù)的參數(shù)即可完成對(duì)對(duì)應(yīng)文件夾的整理,比如我想整理 **C:Users83493Downloads
**文件夾:
if __name__ == "__main__":
auto_organize(r"C:Users83493Downloads")
如上所示,修改代碼第61行的文件夾地址即可。修改完成后運(yùn)行該腳本:
python auto_files.py
就能瞬間完成對(duì)指定文件夾的整理,極其方便。
2.原理
這份代碼的原理很簡(jiǎn)單,為了整理這些文件,我們要遍歷當(dāng)前指定的文件夾:如果是文件夾則跳過,如果是文件則檢測(cè)后綴,分類到對(duì)應(yīng)的文件夾中。文件夾名字及其對(duì)應(yīng)的文件后綴如下:
DIRECTORIES = {
"圖片": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg",
".heif", ".psd"],
"視頻": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng",
".qt", ".mpg", ".mpeg", ".3gp", ".mkv"],
"文檔": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods",
".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt",
"pptx",".csv",".pdf"],
"壓縮文件": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z",
".dmg", ".rar", ".xar", ".zip"],
"影音": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3",
".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
"文本": [".txt", ".in", ".out"],
"編程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],
"可執(zhí)行程序": [".exe"],
}
接下來是自動(dòng)整理的部分代碼,先遍歷指定的文件夾,識(shí)別后綴并分類到對(duì)應(yīng)的文件夾中。
for entry in os.scandir(dirval):
if entry.is_dir():
# 如果是文件夾則跳過
continue
file_path = Path(dirval + "" + entry.name)
file_format = file_path.suffix.lower()
# 避免后綴大小寫判斷問題,全轉(zhuǎn)為小寫
if file_format in FILE_FORMATS:
directory_path = Path(dirval + "" + FILE_FORMATS[file_format])
directory_path.mkdir(exist_ok=True)
file_path.rename(directory_path.joinpath(entry.name))
還有出現(xiàn)不存在在我們字典里的后綴的情況,把它們分類到名為** 其他文件
**的文件夾中:
try:
os.mkdir(dirval + "" +"其他文件")
except:
pass
for dir in os.scandir(dirval):
try:
if dir.is_dir():
# 刪除空文件夾
os.rmdir(dir)
else:
temp = str(Path(dir)).split('')
# 分割文件路徑
path = ''.join(temp[:-1])
print(path + '其他文件' + str(temp[-1]))
os.rename(str(Path(dir)), path + '其他文件' + str(temp[-1]))
except:
pass
3.自定義整理
如果你并不想按照設(shè)定好的文件整理,希望能自定義地將某些特定后綴的文件放到另一個(gè)文件夾,比如 .py 文件統(tǒng)一收納到“Python腳本”文件夾中,你可以這么改 DIRECTORIES 變量:
改動(dòng)前:
DIRECTORIES = {
# ......
"編程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],
# ......
}
改動(dòng)后:
DIRECTORIES = {
# ......
"編程": [".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],
"Python腳本": [".py"],
# ......
}
你可以按照這個(gè)方法,自定義收納那些你需要整理收納的文件格式。
如果你只想對(duì) DIRECTORIES 變量里那些后綴的文件進(jìn)行整理,不屬于這些后綴的文件則不進(jìn)行整理,不需要放到“其他文件”目錄下,此時(shí)要怎么做?
很簡(jiǎn)單,你只需要?jiǎng)h除以下部分代碼就可以完成這個(gè)功能:
# ......
try:
os.mkdir(dirval + "" +"其他文件")
except:
pass
for dir in os.scandir(dirval):
try:
if dir.is_dir():
# 刪除空文件夾
os.rmdir(dir)
else:
temp = str(Path(dir)).split('')
# 分割文件路徑
path = ''.join(temp[:-1])
print(path + '其他文件' + str(temp[-1]))
os.rename(str(Path(dir)), path + '其他文件' + str(temp[-1]))
except:
pass
# ......
怎么樣,是不是很方便?如果這個(gè)簡(jiǎn)單的腳本幫助到了你,請(qǐng)轉(zhuǎn)發(fā)給需要的人哦。
-
文件
+關(guān)注
關(guān)注
1文章
566瀏覽量
24737 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4329瀏覽量
62586 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1447瀏覽量
34054 -
python
+關(guān)注
關(guān)注
56文章
4795瀏覽量
84657
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論