python3 shutil模組
穿插一下sys模組的argv方法,它可以接收執行指令碼後面的引數
首先在指令碼里面定義如下:
import sys
print(sys.argv)
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
執行指令碼:
[root@localhost ~]# python3 aa.py a b
['aa.py', 'a', 'b', 'c'] //對應著print(sys.argv)
aa.py //對應著print(sys.argv[0])
a //對應著print(sys.argv[1])
b //對應著print(sys.argv[2])
shutil模組的作用:高階的檔案、資料夾、壓縮包處理模組
1、檔案內容的複製,使用copyfileobj方法
import shutil
f1 = open("passwd","r",encoding="utf-8")
f2 = open("passwd.bak","w",encoding="utf-8")
shutil.copyfileobj(f1,f2)
還有一種比較簡單的方式:
>>> import shutil
>>> shutil.copyfile("passwd","passwd.old") //使用copyfile方法就可直接對檔案進行復制
'passwd.old'
2、僅複製檔案的許可權,其餘屬性都不複製,前提是必須有目標檔案,如果目標檔案不存在則報錯
[root@localhost ~]# ll passwd
-rwxr-xr-x. 1 xiaoming xiaoming 1576 3月 21 14:52 passwd
[root@localhost ~]# ll passwd.bak //此檔案內容為空
-rw-r--r--. 1 root root 0 3月 21 14:56 passwd.bak
>>> import shutil
>>> shutil.copymode("passwd","passwd.bak") //copymode對檔案的許可權進行複製
再進行檢視兩個檔案的屬性:
[root@localhost ~]# ll passwd
-rwxr-xr-x. 1 xiaoming xiaoming 1576 3月 21 14:52 passwd
[root@localhost ~]# ll passwd.bak //檔案內容為空,但是僅有許可權發生了改變
-rwxr-xr-x. 1 root root 0 3月 21 14:56 passwd.bak
3、複製檔案的所有狀態資訊,不複製檔案內容
>>> import shutil
>>> shutil.copystat("passwd","passwd.bak")
4、複製檔案和許可權,但是不複製屬主和屬組
>>> shutil.copy("passwd","passwd.bak")
'passwd.bak'
5、複製整個目錄樹
>>> import shutil
>>> shutil.copytree("/etc","/etc_new")
刪除整個目錄樹
>>> shutil.rmtree("/etc_new")
6、檔案的移動
>>> import shutil
>>> shutil.move("passwd","/tmp")
'/tmp/passwd'
7、檔案的打包
>>> shutil.make_archive("test","gztar","/etc") //"test"為打包後的名稱,可以指定路徑;"gztar"為打包型別,還可以寫zip;"/etc"為需要打包的程式
'/root/test.tar.gz'
檔案的打包還可以使用另外一種方式
import tarfile
tar = tarfile.open("XXX.tar.gz","w") //"XXX.tar.gz"開啟檔案的名字,也就是tar包名
tar.add("/etc/passwd",arcname="passwd") //新增需要壓縮的檔案
tar.add("/etc/shadow",arcname="shadow")
tar.close()
有了壓縮,那麼解壓呢?
tar = tarfile.open("XXX.tar.gz","r")
tar.extractall("/usr/local") //tar.extractall()可設定解壓路徑
tar.close()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3034/viewspace-2803590/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python_shutil模組Python
- python之shutil模組Python
- Python的shutil模組Python
- [Python] shutil 模組(檔案操作)Python
- python shutil模組簡單介紹Python
- Python的shutil zipfile tarfile模組學習Python
- Python入門(二十六):檔案模組(os模組與shutil模組)Python
- Python3學習筆記(5)常用模組:time、datetime、random、os、sys、shutil、shelve、xml處理Python筆記randomXML
- os ,shutil,send2trash模組彙總(tcy)
- Python學習【第十四篇】shutil模組Python
- python常用標準庫(os系統模組、shutil檔案操作模組)Python
- Python3中的模組Python
- tkinter模組常用引數(python3)Python
- python3匯入paramiko模組Python
- Python3 日曆(Calendar)模組介紹Python
- Python3 pickle模組的使用詳解Python
- Python3爬蟲實戰(requests模組)Python爬蟲
- Python3 queue佇列模組詳解Python佇列
- Python3爬蟲實戰(urllib模組)Python爬蟲
- 【python3】匯入zip 檔案裡的模組Python
- Python3學習筆記4 , 迴圈、模組Python筆記
- python3安裝編譯_tkinter模組丟失Python編譯
- Python3 全自動更新已安裝的模組Python
- python3 筆記17.呼叫模組from...import...Python筆記Import
- Python3常用網路程式設計模組介紹Python程式設計
- Python3中如何做的自定義模組的引用?Python
- python3中的re模組簡單介紹及使用Python
- Python3資料庫模組(sqlite3,SQLite3)Python資料庫SQLite
- Python3 中 configparser 模組解析配置的用法詳解Python
- Python3 安裝第三方模組的二種方法Python
- 使用gettext模組翻譯Python3原始碼以支援國際化Python原始碼
- Python3安裝第三方模組的詳細教程Python
- ImportError: No module named flask 導包失敗,Python3 重新安裝 Flask 模組ImportErrorFlaskPython
- Python3內建模組之json編碼解碼方法講解PythonJSON
- [實戰演練]python3使用requests模組爬取頁面內容Python
- Python2、3並存,Python3無法安裝requests模組Python
- Python3 多執行緒程式設計(thread、threading模組)Python執行緒程式設計thread
- Python shutil用法 複製檔案與目錄操作Python