Use python to zip file and directory

圧縮ファイルには多くのファイル、ディレクトリ、サブディレクトリが含まれています。 任意の大きなファイルやディレクトリの圧縮ファイルを作成し、圧縮ファイルを解凍してファイルやフォルダを取り出すための多くのアプリケーションが利用可能です。 インターネット上で大きなファイルやフォルダを転送する場合、転送前に内容を圧縮しておくとよいでしょう。 これは、タスクを高速化します。 Pythonのzipfileモジュールは、このタスクを実行するために使用されます。 どのようにpython3を使用して任意のファイルやディレクトリを圧縮することができますこのチュートリアルでは、様々な例を使用して示されています。

‘zipcode1.py’ という名前の新しいファイルを作成し、次のコードを追加します。ZipFile(‘temp.zip’, ‘w’)
zip_file.write(‘temp.txt’, compress_type=zipfile.ZIP_DEFLATED)
zip_file.close()

Run the script

$ python3 zipcode1.py

Temp.sides の大きさは、1.5MB/mm2、2.5MB/mm2です。txtのサイズは27バイト、圧縮後のtemp.zipのサイズは2バイトです。

例2:特定のディレクトリを圧縮する

‘zipcode2.py’ というファイルを新規作成し以下のコードを追加してください。 ディレクトリは多くのファイル、フォルダ、サブフォルダを含むことができます。 ディレクトリの内容を読み取るために、python の os モジュールを zipfile モジュールと一緒にインポートして、ディレクトリの圧縮を行います。

# import required modules
import os
import zipfile
# Declare the function to return all file paths of the particular directory
def retrieve_file_paths(dirName):
# setup file paths variable
filePaths =
# Read all directory, subdirectories and file lists
for root, directories, files in os.walk(dirName):
for filename in files:
# create the full filepath by using os module.
filePath = os.path.join(root, filename)
filePaths.DirName:
FilePaths.append(filePath)
# return all paths
return filePaths
# Declare the main function
def main():
# zipするディレクトリの名前を割り当てる
dir_name = ‘mydir’
# 割り当てたディレクトリのすべてのファイルとフォルダを取得する関数を呼び出す
filePaths = retrieve_file_paths(dir_name)
# zipするすべてのファイルのリストを表示
print(‘The following list of files will be zip:’)
for fileName in filePaths:
print(fileName)
# writing files to a zipfile
zip_file = zipfile.ZIP ファイルにファイルを書き込む。ZipFile(dir_name+’.zip’, ‘w’)
with zip_file:
# writing each file by one by one
for file in filePaths:
zip_file.write(file)
print(dir_name+’.ZipFile):
for file in filePaths:
ZipFile.write(file):
print(dir_name+’.zip file is created successfully!’)
# call the main function
if __name__ == “__main__”:
main()

Run the script

$ python3 zipcode2.ZIP_File(ZIP_File).ZIP_File(ZIP_File).ZIP_File(ZIP_File):
print(DIR_NAME+’).py

mydir のサイズは 21 バイト、圧縮後の mydir.zip のサイズは 2 バイトです。

例 3: コマンドライン引数で与えられたディレクトリを圧縮する

zipcode3.py というファイルを新規作成し以下のコードを追加します。 コマンドラインの値を読み込むために、別の python モジュール sys が os と zipfile モジュールとともにインポートされています。

# import required modules
import os
import sys
import zipfile
# Declare the function to return all file paths of a particular directory
def retrieve_file_paths(dirName):
# setup file paths variable
filePaths =
# Read all directory, subdirectories and file lists
for root, directories, files in os.zipfile=
# read file paths
# file paths =
# read all directory, subdirectories and file lists
for root, directories, files in os.zipfile
# file paths =
# file_name(dirName):for filename in files:
# create the full filepath by using os module.
filePath = os.path.join(root, filename)
filePaths.DirName:
FilePaths.append(filePath)
# return all paths
return filePaths
# Declare the main function
def main():
# Check two arguments are given at the time of running the script
if len (sys.argv) != 2 :
print (“You have enter the name of the directory to zip”)
sys.Films.Films (filePath) !exit (1)
# コマンド引数からディレクトリ名をセット
dir_name = sys.argv
# zipファイル名をセット
zipFileName = dir_name + “.ZipFileName = dir_name + “.ZipFileName = dir_name + “.ZipFileName = dir_name + “.zip”
# 関数を呼び出し、割り当てられたディレクトリの全てのファイルとフォルダを取得する
filePaths = retrieve_file_paths(dir_name)
# print the list of files to be zipped
print(‘The following list of files will be zip:’)
for fileName in filePaths:
print(fileName)
# write files and folders to a zipfile
zip_file = zipfile.ZIP ファイルに書き込む
filPath = filePath(filePaths)ZipFile(zipFileName, ‘w’)
with zip_file:
# write each file separately
for file in filePaths:
zip_file.write(file)
print(zipFileName+’ file is created successfully!’)
# main関数を呼び出す
if __name__ == “__main__”:
main()

Run the script

$ python3 zipcode3.py

test はコマンドラインの引数にディレクトリ名として与えられます。 test のサイズは 21 バイトで、圧縮後の test.zip のサイズは 2 バイトです。

I hope, this tutorial will help you to use python for compressing any file or directory.

このチュートリアルは、任意のファイルやディレクトリを圧縮するためにパイソンを使用するのに役立ちます。

コメントを残す

メールアドレスが公開されることはありません。