Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのzipファイルの操作


Pythonの標準ライブラリには、zipfileというモジュールがあります。このモジュールを使用すると、zipファイルに対してさまざまな操作を実行できます。

Zipファイルはアーカイブファイル形式です。 Zipファイルは、損失の少ないデータ圧縮機能を取得するために使用されるため、圧縮形式から完全に再構築できます。 zipファイルには、1つ以上の圧縮ファイルを含めることができます。

zipファイルの優れた機能は、ストレージ要件を軽減し、標準接続を介して速度を転送することです。

Pythonでは、zipファイルを使用するためにzipfileモジュールをインポートする必要があります。

from zipfile import ZipFile

最初に、ディレクトリからZipファイルを作成する方法を説明します。この場合、メインディレクトリにはファイルと他のいくつかのディレクトリがあります。

したがって、最初に、ディレクトリ全体をクロールしてすべてのファイルとフォルダを取得し、パスをリストとして保存する必要があります。次に、Zipファイルを書き込みモードで開き、保存されているパスからすべてを書き込みます。

サンプルコード

#Get all files from directory and subdirectories and convert to zip
from zipfile import ZipFile
import os
defget_all_files(directory): #function to get all files from directory
   paths = []
   for root, dirs, files in os.walk(directory):
      for f_name in files:
         path = os.path.join(root, f_name) #get a file and add the total path
         paths.append(path)
      return paths #Return the file paths
directory = './sample_files'
paths = get_all_files(directory)
#Display the filenames
print('The following files will be stored in the zip file')
for file in paths:
   print(file)
#Open zip file as write mode to create zip
with ZipFile('my_files.zip', 'w') as zf:
for file in paths:
   zf.write(file)
print('Zip is created Successfully')

出力

The following files will be stored in the zip file
./sample_files\TP_python_prev.pdf
./sample_files\text_files\file1.txt
./sample_files\text_files\file2.txt
Zip is created Successfully

ここで、zipfileモジュールを使用してzipファイルを抽出する方法を参照してください。 zipを抽出するには、最初にzipファイルを読み取りとして開く必要があります。 モードにしてから、extract()またはextractall()メソッドを使用してコンテンツを抽出します。 extract()メソッドは、抽出するZipファイルからファイルを見つけるためのパスを取ります。

サンプルコード

#Extract the zip files
from zipfile import ZipFile
zip_file = 'my_files.zip'
with ZipFile(zip_file, 'r') as zf:
   #display the files inside the zip
   zf.printdir()
   #Extracting the files from zip file
   zf.extractall()
   print('Zip Extraction Completed')

出力

File Name Modified Sizesample_files/TP_python_prev.pdf 2018-10-19 13:19:48 1915882sample_files/text_files/file1.txt 2018-11-06 13:34:46 22sample_files/text_files/file2.txt 2018-11-06 13:35:02 24Zip Extraction Completed

次に、zipfileモジュールのinfolist()メソッドについて説明します。これにより、ファイル名、変更日、ファイルサイズなどのさまざまな情報のリストが提供されます。

サンプルコード

#Get information about the zip file
from zipfile import ZipFile
import datetime
zip_file = 'my_files.zip'
with ZipFile(zip_file, 'r') as zf:
   for detail in zf.infolist():
      print('File Name: ' + detail.filename)
      print('\tModify Date: ' + str(datetime.datetime(*detail.date_time)))
      print('\tZip Version: ' + str(detail.create_version))
      print('\tSystem Version: ' + str(detail.create_system)) #0 for windows
      print('\tFile Size (Bytes): ' + str(detail.file_size))

出力

File Name: sample_files/TP_python_prev.pdf Modify Date: 2018-10-19 13:19:48 Zip Version: 20 System Version: 0 File Size (Bytes): 1915882File Name: sample_files/text_files/file1.txt Modify Date: 2018-11-06 13:34:46 Zip Version: 20 System Version: 0 File Size (Bytes): 22File Name: sample_files/text_files/file2.txt Modify Date: 2018-11-06 13:35:02 Zip Version: 20 System Version: 0 File Size (Bytes): 24

  1. AirDroidファイル転送でファイルを転送する

    スマートフォンの急増に伴い、PCとスマートフォン間でファイルを転送する必要性も今日の世界で重要になっています。しかし、どのようにデータを転送しますか?そのような場合、Airdroidのようなファイル転送ツールが助けになります。 パート1:AirDroidとは何ですか?AirDroidを使用してファイルを転送する方法 Airdroidは、同じIPネットワーク上にある限り、PCとスマートフォン間でファイルを共有できるファイル転送ソフトウェアです。コンピューターとスマートフォンの間だけでなく、同じIPネットワークに接続されている任意のデバイスとファイルを交換することもできます。 このソフトウ

  2. コマンド プロンプトの基本:ファイルとフォルダの操作

    コマンド プロンプトの基本:ファイルとフォルダーの操作 エクスプローラーを使用してファイルをナビゲートするのにうんざりしていませんか?開発者または IT プロフェッショナルでない限り、それはあなたではないかもしれません。開発者であろうとなかろうと、基本的なコマンド ラインの知識があると常に役に立ちます。 このガイドでは、ターミナルで作業するときに使用できる一般的なファイル操作コマンドをいくつか紹介します。 コマンド プロンプト (または PowerShell または Windows ターミナル) からファイル システムを走査するには、次の 2 つの基本的なコマンドが必要です:cd と d