【原創(chuàng)】python3:文件樹型結(jié)構(gòu)拷貝工具

本文為個(gè)人原創(chuàng)会钝,歡迎轉(zhuǎn)載巨坊,但請(qǐng)務(wù)必在明顯位置注明出處义图!

本文所有源碼發(fā)布于:https://github.com/qiuyi943/FileExt

http://www.reibang.com/writer#/notebooks/5989464/notes/5526124


1疾层、概述

其實(shí)在為這篇博文起標(biāo)題的時(shí)候有點(diǎn)糾結(jié)裁蚁,不知當(dāng)前的標(biāo)題能否明確概括本文介紹的這個(gè)工具的功能苟径。也許結(jié)合以下場(chǎng)景的描述能夠幫助大家了解這個(gè)工具到底是干什么用的案站。

假設(shè)有一個(gè)文件夾“1”,其樹型結(jié)構(gòu)如下所示

1
├── 2
│   └── 3
│       ├── 4
│       │   └── D.txt
│       ├── A.txt
│       ├── B.txt
│       └── C.txt
├── 5
│   ├── 6
│   │   ├── 7
│   │   │   └── F.txt
│   │   └── G.txt
│   └── E.txt
├── 8
│   └── H.txt
└── I.txt

此時(shí)棘街, 有一個(gè)file.list文件里面記錄了想要拷貝的文件(可以是相對(duì)路徑或者絕對(duì)路徑)

./2/3/A.txt
./8/H.txt
./I.txt
./5/6/G.txt

然后使用本文介紹的工具能夠基于源文件夾“1”的樹形結(jié)構(gòu)蟆盐,并按照file.list的內(nèi)容承边,創(chuàng)建一個(gè)新的樹型文件夾“1_[datatime]”,其結(jié)構(gòu)如下所示

1_20160830014128/
├── 2
│   └── 3
│       └── A.txt
├── 5
│   └── 6
│       └── G.txt
├── 8
│   └── H.txt
└── I.txt

2石挂、使用場(chǎng)景

該工具用于將你感興趣的文件從一個(gè)復(fù)雜的樹型結(jié)構(gòu)路徑中摘取出來博助,并通過創(chuàng)建另外一個(gè)完備的樹型結(jié)構(gòu)路徑來保存這些文件。例如痹愚,Android 的一個(gè)模塊中可能會(huì)編譯出多個(gè)JNI庫文件富岳、bin文件以及app文件(可能不常見,但博主現(xiàn)在維護(hù)的模塊卻是如此)拯腮;如果每次對(duì)該模塊進(jìn)行整編窖式,就會(huì)在多個(gè)路徑中生成多個(gè)文件,當(dāng)對(duì)外分發(fā)時(shí)需要?jiǎng)?chuàng)建一個(gè)跟源路徑相同的文件樹型結(jié)構(gòu)动壤,然后再將各個(gè)文件從源路徑中拷貝出來萝喘,費(fèi)時(shí)費(fèi)力,還容易出錯(cuò)琼懊。


3阁簸、系統(tǒng)兼容

該工具基于Python3開發(fā),在win10以及ubuntu 16.04 LTS測(cè)試均可使用肩碟,前提當(dāng)然是系統(tǒng)要已經(jīng)安裝Pyhton3强窖;由于使用了tkinter這個(gè)庫,所以在ubuntu下使用時(shí)削祈,需要安裝python3-tk

sudo apt-get install python3-tk

4翅溺、功能擴(kuò)展

如果file.list中的路徑表示的是一個(gè)文件夾,那么這個(gè)文件夾中的所有內(nèi)容都會(huì)被拷貝髓抑。例如咙崎,file.list的內(nèi)容如下

/media/sf_share/FileExt/1/2/3

此時(shí)被創(chuàng)建出來的文件樹型結(jié)構(gòu)則是

1_20160830020434
└── 2
    └── 3
        ├── 4
        │   └── D.txt
        ├── A.txt
        ├── B.txt
        └── C.txt

如果想要拷貝出當(dāng)前路徑中的所有名為“D.txt”的文件,那么file.list可以這么寫

**/D.txt

此時(shí)被創(chuàng)建出來的文件樹型結(jié)構(gòu)如下

1_20160830020711
└── 2
    └── 3
        └── 4
            └── D.txt

5吨拍、工具使用

工具的使用非常簡(jiǎn)單褪猛,進(jìn)入命令行終端輸入以下命令,便會(huì)彈出對(duì)話框分別選擇源文件夾和file.list(任意文件名)

python3 FileExt.py

選擇文件夾


選擇文件夾

選擇file.list文件


選擇file.list文件

選擇完文件夾file.list文件之后羹饰,如果文件存在便會(huì)在console窗中輸出類似以下內(nèi)容

./2/3/A.txt --> /media/sf_share/FileExt/1_20160831003900/./2/3/A.txt
./8/H.txt --> /media/sf_share/FileExt/1_20160831003900/./8/H.txt
./I.txt --> /media/sf_share/FileExt/1_20160831003900/./I.txt
./5/6/G.txt --> /media/sf_share/FileExt/1_20160831003900/./5/6/G.txt

6伊滋、源碼下載

本工具的所有源碼已經(jīng)部署至github ,如果已經(jīng)安裝git队秩,可以通過以下命令直接下載:

git clone https://github.com/qiuyi943/FileExt.git
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笑旺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子馍资,更是在濱河造成了極大的恐慌筒主,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異乌妙,居然都是意外死亡使兔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門藤韵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虐沥,“玉大人,你說我怎么就攤上這事荠察≈檬瘢” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵悉盆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我馋吗,道長(zhǎng)焕盟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任宏粤,我火速辦了婚禮脚翘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绍哎。我一直安慰自己来农,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布崇堰。 她就那樣靜靜地躺著沃于,像睡著了一般。 火紅的嫁衣襯著肌膚如雪海诲。 梳的紋絲不亂的頭發(fā)上繁莹,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音特幔,去河邊找鬼咨演。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蚯斯,可吹牛的內(nèi)容都是我干的薄风。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼拍嵌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼遭赂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撰茎,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤嵌牺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逆粹,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡募疮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了僻弹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阿浓。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蹋绽,靈堂內(nèi)的尸體忽然破棺而出芭毙,到底是詐尸還是另有隱情,我是刑警寧澤卸耘,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布退敦,位于F島的核電站,受9級(jí)特大地震影響蚣抗,放射性物質(zhì)發(fā)生泄漏侈百。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一翰铡、第九天 我趴在偏房一處隱蔽的房頂上張望钝域。 院中可真熱鬧,春花似錦锭魔、人聲如沸例证。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽织咧。三九已至,卻和暖如春党涕,著一層夾襖步出監(jiān)牢的瞬間烦感,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工膛堤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留手趣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓肥荔,卻偏偏與公主長(zhǎng)得像绿渣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子燕耿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理中符,服務(wù)發(fā)現(xiàn),斷路器誉帅,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • Ubuntu的發(fā)音 Ubuntu慢蜓,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音郭膛。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,156評(píng)論 9 467
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,501評(píng)論 25 707
  • 感覺我們干的活好低級(jí)
    芹菜姐閱讀 166評(píng)論 0 0
  • 在Windows系統(tǒng)下我們分區(qū)后每個(gè)分區(qū)都是一個(gè)獨(dú)立的文件系統(tǒng)晨抡。但是Linux不同,Linux文件系統(tǒng)是從根文件系...
    wangfs閱讀 153評(píng)論 0 0