當前位置:
首頁 > 知識 > pysorter:根據正則表達式來組織和整理文件和目錄

pysorter:根據正則表達式來組織和整理文件和目錄

pysorter:根據正則表達式來組織和整理文件和目錄

Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。


pysorter

這是一條可以根據正則表達式來組織整理文件和目錄的命令

快速開始

  • pip install pysorter

  • pysorter

命令行解釋

pysorter:根據正則表達式來組織和整理文件和目錄

配置實例

pysorter針對一些常用的文件類型進行了默認的規則匹配,當然你也通過修改pysorter/filetypes.py文件來實現自定義規則。

實例 1:

假設我們想將所有的PDF文檔放置於同一個PDF目錄下,該目錄位於/home/chris/sorted/documents/。第一步我們必須寫一個規則文件,該文件是一個定義了我們要移動的文件的目標文件夾的python模塊。

pysorter:根據正則表達式來組織和整理文件和目錄

注意:
  • 規則是按照順序嘗試匹配的,一旦匹配成功後續規則會被忽略。

  • "/」在目標 (documents/pdf/)中非常重要,因為所有的PDF將會移動到目錄 documents/pdf/中。如果"/」缺失document/pdf,那麼所有的PDF文件將會被移動到目錄document中的名字叫做pdf的文件中。這顯然不是我們想要的。

  • 目標也可以是一個Python的可調用對象。

實例 2:

我們想將Facebook中下載的所有圖片放置於目錄 images/facebook/ 而非目錄images/。你可能會注意到Facebook的圖片都是以_n.jpg結尾的。我們可將前綴進行分離,並按照下面規則來寫:

pysorter:根據正則表達式來組織和整理文件和目錄

注意:

這個例子可能看起來比較複雜,但它其實僅用到了python的基本功能。讓我們分解下:

  • (?P<filename>[^/]+)被稱為命名匹配組,它將匹配任何字元串,只要其後緊跟的不是/字元,這樣文件名就不包含目錄了。下面是幾個匹配的例子:

    • tosort/myphoto_n.jpg. filename=myphoto

    • tosort/foo/y123_n.jpg. filename=y123

  • 在目標規則中,我們可以同時使用命名匹配規則和非命名匹配規則。

你也可以通過查看pysorter.filetypes模塊來獲得更多幫助。

說明

由於使用了Python的shutil庫,所以會有下列警告:

警告

即使高級文件拷貝功能(shutil.copy, shutil.copy2)也不能將文件的全部屬性拷貝.

- 在POSIX平台,這意味著文件owner和group屬性將會和ACLs一樣丟失。

- 在MAC OS平台,資源派生(resurce fork)和其他元數據(metadata)將不會被使用到。

這意味著這些資源將會丟失並且文件類型和創建者代碼可能會不正確。

- 在Windows平台,文件擁有者,ACL和ile owners, ACLs and 交換數據流(ADS)將不會被拷貝。

如果文件屬於同一個文件系統,那麼將不會用到copy 或 copy2 ,這不會涉及任何風險。

如果你有什麼不明白的地方可以創建問題,我們將竭盡全力幫助解決

版本要求

Python version:

2.7

3.3

3.4

3.5

版本歷史

請查看 guide.

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python部落 的精彩文章:

月考+Python軟體也會中毒,請謹慎預防並及時殺毒
Stack Overflow上部署HTTPS:長路盡頭(五)
Stack Overflow上部署HTTPS:長路盡頭
Python中本地時間轉換為UTC(協調世界時)
使用Python,GeoJSON和GeoPandas開始地理空間分析

TAG:Python部落 |