10行Python代碼助你整理雜亂無(wú)章的文件
醬子們大家好,今天繼續(xù)分享 Python 小工具
今天的小程序,可以一鍵完成文件整理,一起來(lái)看看吧!
按照文件格式整理
具體來(lái)說(shuō)就是不同的文件后綴名稱放置到不同的文件夾當(dāng)中
今天我們只需要使用 os 和 shutil 兩個(gè)庫(kù)就足夠了。os 是 Python 內(nèi)置模塊,用于操作系統(tǒng)的相關(guān)功能,shutil 是用來(lái)進(jìn)行文件移動(dòng)等操作的。
首先我們先來(lái)看幾個(gè)獲取文件后綴的方法
獲取文件后綴
方法1:
直接通過(guò) os 庫(kù)實(shí)現(xiàn)
filename?=?os.path.splitext('1.jpg')
Output:
('1', '.jpg')
得到一個(gè)包含文件名和后綴名的元組,此時(shí)再想獲得文件后綴就很容易了吧~
方法2:
可以直接使用字符串方法 endwith,簡(jiǎn)單明了
file?=?"1.jpg".endswith(".jpg")
如果結(jié)尾字符是 “.jpg” 的話,那么該方法的返回值則為 True,以此我們可以判斷文件的后綴名
方法3:
使用字符串的 split 方法,通過(guò)切分來(lái)獲取后綴名稱
file1?=?"1.jpg".split('.')
這樣可以得到一個(gè)列表,第二個(gè)元素就是后綴名
接下來(lái)我們就可以創(chuàng)建文件夾和拷貝文件了,分別用 os.mkdir 和 shutil.copy 來(lái)操作
代碼如下:
import?os
import?shutil
files?=?os.listdir(".")
for?f?in?files:
????if?os.path.isfile(f)?and?not?f.startswith('.'):
????????folder_name?=?os.path.splitext(f)[-1]
????????folder_name?=?folder_name.split(".")[-1]
????????print(folder_name)
????????if?not?os.path.exists(folder_name):
????????????os.mkdir(folder_name)
????????????shutil.copy(f,?folder_name)
????????else:
????????????shutil.copy(f,?folder_name)
通過(guò)上面的代碼,我們就可以在當(dāng)前目錄下順利地整理文件了
按照文件大小整理
當(dāng)然有的時(shí)候,我們同樣希望把大小類似的文件整理到一個(gè)文件夾當(dāng)中,可以通過(guò) os 庫(kù)的 getsize 函數(shù)來(lái)獲取
print(os.path.getsize("1.jpg"))
這樣就可以得到該文件的大小,單位是 KB
完整代碼如下:
import?os
import?shutil
files?=?os.listdir(".")
for?f?in?files:
????if?os.path.isfile(f)?and?not?f.startswith('.'):
????????size?=?os.path.getsize(f)
????????if?size?<?1000:
????????????folder_name?=?"Under_one_MB"
????????????if?not?os.path.exists(folder_name):
????????????????os.mkdir(folder_name)
????????????????shutil.copy(f,?folder_name)
????????????else:
????????????????shutil.copy(f,?folder_name)
????????elif?10000?<=?size?<?2000:
????????????folder_name?=?"Under_two_MB"
????????????if?not?os.path.exists(folder_name):
????????????????os.mkdir(folder_name)
????????????????shutil.copy(f,?folder_name)
????????????else:
????????????????shutil.copy(f,?folder_name)
好了,以上就是今天分享的文件整理小工具,還是蠻實(shí)用的,快來(lái)嘗試一下吧!
到此這篇關(guān)于10行Python代碼助你整理雜亂無(wú)章的文件的文章就介紹到這了,更多相關(guān)Python整理文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python動(dòng)態(tài)演示旋轉(zhuǎn)矩陣的作用詳解
一個(gè)矩陣我們想讓它通過(guò)編程,實(shí)現(xiàn)各種花樣的變化怎么辦呢?下面這篇文章主要給大家介紹了關(guān)于Python動(dòng)態(tài)演示旋轉(zhuǎn)矩陣的作用,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
python爬蟲(chóng)_自動(dòng)獲取seebug的poc實(shí)例
下面小編就為大家?guī)?lái)一篇python爬蟲(chóng)_自動(dòng)獲取seebug的poc實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
新版Pycharm中Matplotlib不會(huì)彈出獨(dú)立的顯示窗口的問(wèn)題
這篇文章主要介紹了解決新版Pycharm中Matplotlib不會(huì)彈出獨(dú)立的顯示窗口的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
詳解如何使用Pytest進(jìn)行自動(dòng)化測(cè)試
這篇文章主要介紹了詳解如何使用Pytest進(jìn)行自動(dòng)化測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
關(guān)于Python常用模塊時(shí)間模塊time
這篇文章主要介紹了關(guān)于Python常用模塊時(shí)間模塊time,這個(gè)模塊是Python自帶的,我們不需要去下載,直接導(dǎo)入就可以使用,需要的朋友可以參考下2023-04-04
selenium?drag_and_drop不生效的解決辦法
本文主要介紹了selenium?drag_and_drop不生效的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

