解壓大於4g的檔案 python解壓壓縮包

2021-10-14 12:21:14 字數 2317 閱讀 9856

gz: 即gzip。通常僅僅能壓縮乙個檔案。與tar結合起來就能夠實現先打包,再壓縮。

tar: linux系統下的打包工具。僅僅打包。不壓縮

tgz:即tar.gz。先用tar打包,然後再用gz壓縮得到的檔案

zip: 不同於gzip。儘管使用相似的演算法,能夠打包壓縮多個檔案。只是分別壓縮檔案。

rar:打包壓縮檔案。最初用於dos,基於window作業系統。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import gzip

def un_gz(file_name):

# 獲取檔案的名稱,去掉字尾名

f_name = file_name.replace(".gz", "")

# 開始解壓

g_file = gzip.gzipfile(file_name)

#讀取解壓後的檔案,並寫入去掉字尾名的同名檔案(即得到解壓後的檔案)

open(f_name, "wb+").write(g_file.read())

g_file.close()

import tarfile

tar = tarfile.open( '*.tar.gz', mode = "r:gz") #"r:gz"表示 open for reading with gzip compression

tar.extractall(path='temp') ### 將tar.gz檔案解壓到temp資料夾下

基本格式:zipfile.zipfile(filename[,mode[,compression[,allowzip64]]])

mode:可選 r,w,a 代表不同的開啟檔案的方式;r 唯讀;w 重寫;a 新增

compression:指出這個 zipfile 用什麼壓縮方法,預設是 zip_stored,另一種選擇是 zip_deflated;

allowzip64:bool型變數,當設定為true時可以建立大於 2g 的 zip 檔案,預設值 true;

zip_file = zipfile.zipfile(path)

zip_list = zip_file.namelist() # 得到壓縮包裡所有檔案

for f in zip_list:

zip_file.extract(f, folder_abs) # 迴圈解壓檔案到指定目錄

zip_file.close() # 關閉檔案,必須有,釋放記憶體

rar=rarfile.rarfile(filename, mode='r') # mode的值只能為'r'

# 判斷同名資料夾是否存在,若不存在則建立同名資料夾

if os.path.isdir(os.path.splitext(filename)[0]):

rf_list = rf.namelist() # 得到壓縮包裡所有的檔案

print('rar檔案內容', rf_list)

else:

os.mkdir(os.path.splitext(filename)[0])

rar.extractall(os.path.splitext(filename)[0]) # 解壓檔案

rar.close() # 關閉檔案,必須有,釋放記憶體

windows下rar解壓操作:

安裝python包unrar

pip install unrar

windows下先進入python安裝目錄下的scripts: 例如「d:python27scripts」

然後同樣執行: pip install unrar

linux中開啟大檔案的問題 大於4G

前段時間寫乙個程式時遇到了開啟乙個大於4g的檔案的問題,我開始是用標準c函式fopen來開啟,在windows下跑沒有問題,但是移植到linux下時,卻出現開啟檔案錯誤,測試發現開啟小檔案沒有問題,這可能跟系統的處理有關,仔細一想,linux下不可能不支援大檔案啊,應該有別的介面,所以上網查了一下,...

Linux 下 C語言大檔案讀寫 大於4G)

以下的做法整理自論壇上的帖子。如何create大檔案 要大就非常大,1t吧。有兩種方法 一.dd dd if dev zero of 1t.img bs 1g seek 1024 count 0 bs 1g表示每一次讀寫1g資料,count 0表示讀寫0次,seek 1024表示略過1024個blo...

Oracle日誌檔案達到4G

解決方案一 停止 1 lsnrctl進入互動模式 cmd 輸入 lsnrctl 2 執行set current listener listener 3 set log status off 4 stop 停止 5 手工刪除adr指定的監聽日誌路徑下的listener.log檔案 6 start重啟 ...