定義檔案xx.tar.gz 的產生方式如下:
import os,tarfile
defunpack_path_file
(pathname)
: archive = tarfile.
open
(pathname,
'r:gz'
) path=os.path.split(os.path.abspath(pathname))[
0]f,n=0,
0# 設定檔案數和加和為0
for tarinfo in archive:
archive.extract(tarinfo, path)
# 解壓壓縮檔案中的乙個檔案
name=tarinfo.name # 解壓的檔名
tfname=os.path.join(path,tarinfo.name)
# 解壓後的檔案路徑
if tarinfo.isfile():
# 如果是檔案 存在待解壓檔案是.的情況 表示當前壓縮檔案
if tarinfo.name.rfind(
".tar.gz")!=
-1:# 如果也是壓縮檔案,則遞迴解壓它
f1,n1=unpack_path_file(tfname)
f+=f1
n+=n1
# 把呼叫函式的檔案數量和數字和加上來
else
:# 如果不是壓縮檔案,則是資料檔案,裡面含有非負整數
f+=1# 檔案數量加1
with
open
(tfname)
as fp:
# 讀出來這個非負整數並加到n上
n+=int(fp.read())
archive.close(
)# 關閉這個壓縮檔案
return f,n # 返回給上一級檔案數量和加和
# 呼叫函式開始解壓
unpack_path_file(
"00.tar.gz"
)
日期:2023年11月24日 遞迴遞推訓練 E
題目要求 一對成熟的兔子每天能產下一對小兔子,每次生一公一母,每只小兔子的成熟期是1天,小兔子一天後成熟可生小兔子,某人領養了一對成熟的兔子,一公一母,第n天後得到多少對兔子。題目思路 定義陣列a代表成熟母兔子的數量,陣列b代表小兔子的數量,每天的小兔子數量等於前一天母兔子的數量,母兔子的數量等於前...
遞推遞迴練習E 養兔子
description 一對成熟的兔子每天能且只能產下一對小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生後隔一天才能再生小兔子。第一天某人領養了一對成熟的兔子,一公一母,請問第n天以後,他將會得到多少對兔子。input 測試資料報括多組,每組一行,為整數n 1 n 90 輸入以0結束...
遞推遞迴練習 E 養兔子
description 一對成熟的兔子每天能且只能產下一對小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生後隔一天才能再生小兔子。第一天某人領養了一對成熟的兔子,一公一母,請問第n天以後,他將會得到多少對兔子。input 測試資料報括多組,每組一行,為整數n 1 n 90 輸入以0結束...