python壓縮檔案的效率高嗎?
python压缩文件的效率高吗?这里使用shell脚本和Python脚本同样压缩文件进行对比,通过时间和压缩比对比发现Python的压缩比可以,但是效率低耗时较多。
Shell使用系统tar
Python使用tarfile模块,Python不开多线程的情况两者做文件打包压缩对比。
Python代码:
#-*- coding: utf-8 -*- #!/usr/bin/evn python """ USAGE: Bak_rsync_Python.py version """ import sys import time import os import shutil import subprocess import tarfile rundir=os.getcwd() src_dir='/data/rsync_center' bak_dir='/data/backup/game/test' today=time.strftime("%Y_%m_%d", time.localtime()) def main(version): #set local var md5="/sbin/md5" bak_file="rsync_center_"+today+"_"+version+".tgz" #多个变量联合做变量 md5_file=rundir+"/md5/"+bak_file+".md5" cmd="%s %s > %s" % (md5,bak_file,md5_file) #print bak_file #print md5_file #tar src dir os.chdir(src_dir) tar=tarfile.open(bak_file,'w|gz') tar.add(src_dir) tar.close() #tgz file md5 ret=subprocess.call(cmd,shell=True) #subprocess.call返回值是退出状态 if ret !=0: print "md5 failed" sys.exit(1) #else: print ret #move tgz to dst dir shutil.move(bak_file,bak_dir) if __name__=='__main__': try: len(sys.argv)!=2 except: print "Please give version" print __doc__ else: print "start at",time.ctime() version=sys.argv[1] main(version) print "end at",time.ctime()
shell脚本:
#!/bin/sh - # Bak_rsync_Shell.sh version shell_dir=`pwd` src_dir=/data/rsync_center bak_dir="/data/backup/game/test" log_file=${shell_dir}/rsync_center_bak.log Version=$1 Today=`/bin/date +%Y_%m_%d` Fourteenday=`/bin/date -v -8d +%Y_%m_%d` bak_file="rsync_center_${Today}_${Version}.tgz" md5_file=${shell_dir}/md5/$bak_file.md5 if [ $# -ne 1 ] then echo "Please give a version!" break else startdate=`date "+%Y-%m-%d %H:%M:%S"` echo "rsync_center backup Start at " $startdate cd $src_dir tar -zcf $bak_file ./ /sbin/md5 $bak_file > $md5_file mv $bak_file $bak_dir/ enddate=`date "+%Y-%m-%d %H:%M:%S"` echo "rsync_center backup Complete at" $enddate fi
运行对比:
#du -sh /data/rsync_center/ 112M /data/rsync_center/ #sh Bak_rsync_Shell.sh testShell rsync_center backup Start at 2012-03-15 14:53:37 tar: ./rsync_center_2012_03_15_testShell.tgz: Can't add archive to itself rsync_center backup Complete at 2012-03-15 14:53:46
使用了9秒
#python Bak_rsync_Python.py testPython start at Thu Mar 15 14:54:54 2012 end at Thu Mar 15 14:55:20 2012
使用了27秒
压缩大小差不多
#ll -h /data/backup/game/test/ | awk '{print$5,$9}' 49M rsync_center_2012_03_15_testPython.tgz 49M rsync_center_2012_03_15_testShell.tgz
python使用代码53行(取出注释也有40行),shell使用代码26行
python的逻辑更复杂,shell更简单一点。
可见python在单线程的情况下,对于系统基本文件处理,比如复制移动,打包压缩不如shell简单高效。逻辑上也不利于SA快速理解。所以,Python在基本的系统管理上,可能不如Shell.
以上是python壓縮檔案的效率高嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
