คำสั่งของไลบรารี zipfile
คำสั่งเปิดไฟล์ zip
ZipFile.open(ไฟล์, โหมดการเปิดไฟล์, pwd=None)
และอีกคำสั่ง
zipfile.ZipFile(ไฟล์, โหมดการเปิดไฟล์)
คำสั่งเพิ่มไฟล์เข้าไปบีบอัด
ZipFile.write(ไฟล์ที่ต้องการเพิ่มเข้าไปยัง zip, arcname=None, compress_type=None)
สามารถกำหนดชนิดการบีบอัดข้อมูลได้ไฟล์ได้ด้วยการเพิ่มชนิดการบีบอัดข้อมูล เข้าไปในคำสั่ง
ZipFile.write(ไฟล์,compress_type=ชนิดการบีบอัด)
โดยรองรับชนิดการบีบอัดทั้ง zipfile.ZIP_STORED, zipfile.ZIP_DEFLATED, Zzipfile.IP_BZIP2 หรือ zipfile.ZIP_LZMA หากไม่ได้กำหนดชนิดการบีบอัด ชนิดการบีบอัดจะเป็น zipfile.ZIP_STORED
คำสั่งเขียนข้อมูลสตริงเข้าไปยังไฟล์ใน zip
ZipFile.writestr(zinfo_or_arcname, bytes[, compress_type])
คำสั่งอ่านไฟล์ใน zip
ZipFile.read(name, pwd=None)
คำสั่งเข้ารหัสไฟล์ zip
ZipFile.setpassword(pwd)
คำสั่งอ่านรายชื่อไฟล์ใน zip
ZipFile.namelist()
คำสั่งคลายข้อมูลไฟล์ zip
ZipFile.extractall([path[, members[, pwd]]])
คำสั่งดึงรายละเอียดของไฟล์ที่ถูกบีบอัดใน zip
ZipFile.infolist()
โดยใช้งานคู่กับคำสั่ง ZipInfo ครับ
คำสั่งปิดไฟล์
ZipFile.close()
ZipInfo
ดึงข้อมูลของไฟล์ที่บีบอัดอยู่ในไฟล์ zipคำสั่งดึงชื่อไฟล์
ZipInfo.filename
คำสั่งดึงวันเวลาของไฟล์ใน zip ที่ถูกเปลี่ยนแปลง
ZipInfo.date_time
คำสั่งแสดงขนาดของไฟล์ก่อนถูกบีบอัด
ZipInfo.file_size
คำสั่งแสดงขนาดของไฟล์หลังถูกบีบอัด
ZipInfo.compress_size
การใช้งาน
import zipfile
เข้ามาเมื่อเรียกใช้งานคำสั่งของไลบรารี zipfile
อ่านรายชื่อไฟล์ที่อยู่ใน zip
>>>> import zipfile
>>>> f = zipfile.ZipFile('2012.zip', 'r')
>>>> for i in f.namelist():
.... print(i)
....
RainfallHourlyData2012_Part2.csv
TMDTelemetringRainfallMetadata.docx
1.py
RainfallHourlyData2012_Part1.csv
ดึงรายละเอียดของไฟล์ที่ถูกบีบอัดใน zip
RainfallHourlyData2012_Part1.csv
>>>> for i in f.infolist():
.... print(i.filename,i.date_time, i.file_size)
....
RainfallHourlyData2012_Part2.csv (2015, 4, 20, 14, 55, 56) 32797914
TMDTelemetringRainfallMetadata.docx (2015, 4, 20, 15, 34, 24) 14637
1.py (2015, 4, 20, 18, 29, 54) 762
RainfallHourlyData2012_Part1.csv (2015, 4, 20, 14, 37, 20) 31356377
สร้างไฟล์ zip
import zipfile
import glob, os
file = zipfile.ZipFile("test1.zip", "w") #สร้างไฟล์ test1.zip ด้วยโหมด w
for name in glob.glob("data/*"): #ดึงรายชื่อไฟล์ทั้งหมดที่อยู่ในโฟลเลอร์ data
file.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED) #บีบอัดไฟล์เข้าไฟล์ zip
file.close()
เพิ่มไฟล์เข้าไปยัง zip
import zipfile
f = zipfile.ZipFile('test2.zip', 'a')
f.write('test1.zip',compress_type=zipfile.ZIP_DEFLATED)
f.close()
คลายไฟล์ zip
import zipfile
f = zipfile.ZipFile('test1.zip', 'r')
f.extractall("dir/") #คลายไฟล์ไปยังโฟลเลอร์ dir
f.close()
เขียนข้อความสตริงเข้าไปยังไฟล์ใน zip
import zipfile
msg = 'This data did not exist in a file.'
with zipfile.ZipFile('writestr.zip',mode='w',compression=zipfile.ZIP_DEFLATED) as zf:
zf.writestr('from_string.txt', msg) #เขียนข้อความเข้าไปยังไฟล์ from_string.txt
with zipfile.ZipFile('writestr.zip', 'r') as zf:
print(zf.read('from_string.txt')) #อ่านข้อความในไฟล์ from_string.txt
ผลลัพธ์
b'This data did not exist in a file.'
อ่านเอกสารเพิ่มเติมได้ที่ https://docs.python.org/3/library/zipfile.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)