<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
import shutil # shutil.copyfileobj(fsrc, fdst[, length]),將檔案內容拷貝到另一個檔案中 shutil.copyfileobj(open('old.xml', 'r'), open('new.xml', 'w')) # shutil.copyfile(src, dst),拷貝檔案 shutil.copyfile('f1.log', 'f2.log') # 目標檔案無需存在 # shutil.copymode(src, dst),僅拷貝許可權。內容、組、使用者均不變 shutil.copymode('f1.log', 'f2.log') # 目標檔案必須存在 # shutil.copystat(src, dst),僅拷貝狀態的資訊,包括:mode bits, atime, mtime, flags shutil.copystat('f1.log', 'f2.log') # 目標檔案必須存在 # shutil.copy(src, dst),拷貝檔案和許可權 shutil.copy('f1.log', 'f2.log') # shutil.copy2(src, dst),拷貝檔案和狀態資訊 shutil.copy2('f1.log', 'f2.log') # shutil.ignore_patterns(*patterns) # shutil.copytree(src, dst, symlinks=False, ignore=None),遞迴的去拷貝資料夾 # 目標目錄不能存在,注意對folder2目錄父級目錄要有可寫許可權,ignore的意思是排除 shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) # shutil.rmtree(path[, ignore_errors[, onerror]]),遞迴的去刪除檔案 shutil.rmtree('folder1') # shutil.move(src, dst),遞迴的去移動檔案,它類似mv命令,其實就是重新命名 shutil.move('folder1', 'folder3') # shutil.make_archive(base_name, format, ...),建立壓縮包並返回檔案路徑,例如:zip、tar ''' base_name: 壓縮包的檔名,也可以是壓縮包的路徑。只是檔名時,則儲存至當前目錄,否則儲存至指定路徑,如 data_bak = >儲存至當前路徑;/ tmp/data_bak = >儲存至/tmp/ format:壓縮包種類,「zip」, 「tar」, 「bztar」,「gztar」 root_dir:要壓縮的資料夾路徑(預設當前目錄) owner:使用者,預設當前使用者 group:組,預設當前組 logger:用於記錄紀錄檔,通常是logging.Logger物件 ''' # 將 /data 下的檔案打包放置當前程式目錄 ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data') # 將 /data下的檔案打包放置 /tmp/目錄 ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')
shutil 對壓縮包的處理是呼叫 ZipFile 和 TarFile 兩個模組來進行的,詳細:
import zipfile # 壓縮 z = zipfile.ZipFile('laxi.zip', 'w') z.write('a.log') z.write('data.data') z.close() # 解壓 z = zipfile.ZipFile('laxi.zip', 'r') z.extractall(path='.') z.close()
import tarfile # 壓縮 t=tarfile.open('/tmp/egon.tar','w') t.add('/test1/a.py',arcname='a.bak') t.add('/test1/b.py',arcname='b.bak') t.close() # 解壓 t=tarfile.open('/tmp/egon.tar','r') t.extractall('/egon') t.close()
subprocess模組允許你去建立一個新的程序讓其執行另外的程式,並與它進行通訊,獲取標準的輸入、標準輸出、標準錯誤以及返回碼等。
更多檢視官網:https://docs.python.org/2/library/subprocess.html?highlight=subprocess
import subprocess ''' sh-3.2# ls /Users/nick/Desktop |grep txt$ mysql.txt tt.txt 事物.txt ''' res1 = subprocess.Popen('ls /Users/jieli/Desktop',shell=True, stdout=subprocess.PIPE) res = subprocess.Popen('grep txt$', shell=True,stdin=res1.stdout, stdout=subprocess.PIPE) print(res.stdout.read().decode('utf-8')) # 下面這段等同於上面,但是上面的優勢在於,一個資料流可以和另外一個資料流互動,可以通過爬蟲得到結果然後交給grep。 res1 = subprocess.Popen('ls /Users/jieli/Desktop |grep txt$',shell=True, stdout=subprocess.PIPE) print(res1.stdout.read().decode('utf-8')) # windows下: # dir | findstr 'test*' # dir | findstr 'txt$' res1 = subprocess.Popen(r'dir 「C:UsersAdministratorPycharmProjectstest函數備課」', shell=True, stdout=subprocess.PIPE) res = subprocess.Popen('findstr test*', shell=True, stdin=res1.stdout, stdout=subprocess.PIPE) # subprocess使用當前系統預設編碼,得到結果為bytes型別,在windows下需要用gbk解碼 print(res.stdout.read().decode('gbk') )
到此這篇關於Python使用shutil操作檔案、subprocess執行子程式的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45