作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!
我們可以通過作業系統的命令來管理檔案,如同我們在linux檔案管理相關命令中看到的那樣。另一方面,python標準庫則允許我們在python內部管理檔案。相同的目的,我們就有了兩條不同的途徑實現。在python內部實現的優勢在於你可以同時利用python語言,並配合其他python工具,比如Regex工具。但作業系統同樣可以通過shell編程,來整合linux檔案管理命令,shell也擁有自己的Regex工具。python or shell? 這是留給使用者的選擇。本文中會盡量將兩者相似的功能相對應。
同樣,本文也是基於linux檔案管理背景知識
(python並不是叫用作業系統的命令來實現這些功能的。python獨立地調用c標準庫以及系統調用函數來實現。當然,在python中也可以叫用作業系統的命令,我們會在以後介紹如何?這一功能。)
1. os包:
os包包括各種各樣的函數,以實現作業系統的許多功能。這個包非常龐雜。os包的一些命令就是用於檔案管理。我們這裡列出最常用的:
mkdir(path)
建立新目錄,path為一個字串,表示新目錄的路徑。相當於$mkdir命令
rmdir(path)
刪除空的目錄,path為一個字串,表示想要刪除的目錄的路徑。相當於$rmdir命令
listdir(path)
返回目錄中所有檔案。相當於$ls命令。
remove(path)
刪除path指向的檔案。
rename(src, dst)
重新命名檔案,src和dst為兩個路徑,分別表示重新命名之前和之後的路徑。
chmod(path, mode)
改變path指向的檔案的許可權。相當於$chmod命令。
chown(path, uid, gid)
改變path所指向檔案的擁有者和擁有組。相當於$chown命令。
stat(path)
查看path所指向檔案的附加資訊,相當於$ls -l命令。
symlink(src, dst)
為檔案dst建立軟連結,src為軟連結檔案的路徑。相當於$ln -s命令。
getcwd()
查詢當前工作路徑 (cwd, current working directory),相當於$pwd命令。
比如說我們要建立目錄new:
import osos.mkdir('/home/vamei/new')
2. shutil包
copy(src, dst)
複製檔案,從src到dst。相當於$cp命令。
move(src, dst)
移動檔案,從src到dst。相當於$mv命令。
比如我們想複製檔案a.txt:
import shutilshutil.copy('a.txt', 'b.txt')
關於本文中的各個命令的細節,請參照官方文檔。os, shutil。實際上,結合本章以及之前的內容,我們已經可以把Python作為一個系統檔案管理的利器使用了。
總結:
os包: rmdir, mkdir, listdir, remove, rename, chmod, chown, stat, symlink
shutil包: copy, move