アクセスありがとうございます!次は「とあるエンジニアのエソラゴト」で検索して頂けると嬉しいです!

【Python入門】ファイル操作(読込、書込、削除、zip圧縮・解凍)

どうも、当ブログ(とあるエンジニアのエソラゴト)を運営している、エンジニアのエソラ(@ya6madev)です。

普段はSIer企業でDXとかAI開発をしながら、自社サービスの開発をしています。

今回はPythonを使ってファイル操作をする具体的な方法について記載します。

この記事を読めば、ファイルの読み込み、書き込み、削除、zip圧縮・解凍と言った基本的なファイル操作の実装方法について学ぶことが出来ます。

現場で活躍できるよう、Pythonでのファイル操作方法について学んで理解してみて下さい。

もし、もっとPythonの文法や便利な使い方について、効率的に学びたいという方がいたら以下の記事がおすすめです。

open()の使用方法

Pythonでファイルの作成するのはすごく簡単です。

具体的にはopen()という関数を利用します。

open()を使用すれば、Pythonのファイル操作は簡単に実現が出来ます。

open()の仕様は以下のようになっています。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

重要な引数は、「mode」と「encoding」です。

open()のmode引数

mode引数で指定出来る引数は以下の表の通りです。

文字意味
'r'読み込み用に開く (デフォルト)
'w'書き込み用に開き、まずファイルを切り詰める
'x'排他的な生成に開き、ファイルが存在する場合は失敗する
'a'書き込み用に開き、ファイルが存在する場合は末尾に追記する
'b'バイナリモード
't'テキストモード (デフォルト)
'+'open for updating (reading and writing)
mode引数

ファイルの読み込みがしたいのであれば、mode=’r’を指定し、ファイルに書き込みがしたいのであれば、mode=’w’を指定します。

このようにファイルに対してやりたい操作に合うように、mode引数の値を変えて、open()は使用します。

open()関数の詳しい仕様については、以下の公式ページを参照して下さい。

組み込み関数 open

open()のencoding引数

encoding引数については、ファイルのエンコードを指定します。

よく利用するのは、utf-8だと思うので、encoding=’utf-8’のように引数を指定します。

以下からは、具体的なファイル操作のサンプルコードについて解説をしていきます。

ファイルの読み込み

CSVファイルを読み込むサンプルコードを実装します。

準備として、以下のようなCSVファイルを用意します。

first_name,last_name,age
Yamada,Taro,20
Yamamoto,Hanako,32

そして、サンプルコードは以下のようになります。

file = './name.csv'
with open(file, mode='r') as f:

    for row in f:
        # 1行ずつ処理をする
        columns = row.rstrip().split(',')
        first_name = columns[0]
        last_name = columns[1]
        print(first_name)
        print(last_name)

open()のmode引数は読み込みなので、’r’を指定します。

そして、ファイル全体の内容を読み込み、繰り返し文のforを使って、1行ずつ処理をしています。

上記のコードを実行すると、以下が出力されます。

first_name
last_name
Yamada
Taro
Yamamoto
Hanako

rstrip()の使用方法

rstrip関数で空白を除去しています。

rstrip()関数は文字列の右側の文字を除去したコピーを返します。

str.rstrip(除去する文字)

文字列の右側から「除去する文字」に該当する文字列が削除されます。

引数を省略した場合には空白が削除されます。

split()の使用方法

split()はsepで指定した文字列を除去します。

str.split(sep=None, maxsplit=-1)

サンプルコードでは、’,’を指定して、CSVファイルの区切り文字である「,」を除去しています。

ファイルの書き込み

Pythonでファイルの書き込みをする時のサンプルコードは以下のようになります。

week = ['月曜日',
        '火曜日',
        '水曜日',
        '木曜日',
        '金曜日',
        '土曜日',
        '日曜日'
        ]

with open('output.txt', 'w', encoding='utf-8') as f:
    for day in week:
        f.write(day + '\n')

mode引数には’w’を指定します。

encodingに’utf-8’を指定しているため、作成されるファイルのエンコードはutf-8になります。

複数行、ファイルに書き込みをするために、サンプルコードではfor文を使って、繰り返し処理を実施しています。

改行をするために’\n’を使用しています。

ファイルの削除

ここからは、ファイルを削除するサンプルコードになります。

ファイルを削除するためには、osという標準モジュールをインポートして使います。

そして、os.remove(‘削除したいファイル’)でファイルの削除が出来ます。

import os

os.remove('./test.txt')

ファイルのzip圧縮

Pythonでzip圧縮するためには、zipfileというモジュールをインポートして使います。

zipfile.ZipFile()でオブジェクトを作成して、write()関数でzipファイルに追加したいファイルを指定します。

import zipfile

with zipfile.ZipFile('test.zip', 'w', compression=zipfile.ZIP_DEFLATED) as new_zip:
    new_zip.write('test1.txt', arcname='test1.txt')
    new_zip.write('test2.txt', arcname='test2.txt')

zipfile.ZipFile()では、第1引数にzipファイル名、第2引数に’w’、第3引数に圧縮方法を指定します。

第3引数に指定する圧縮方法は、以下から選択します。

指定する値意味
zipfile.ZIP_STOREDファイルの圧縮はせずに、複数ファイルを一つにまとめるだけ
zipfile.ZIP_DEFLATED通常のzip圧縮(zlibモジュールが必要)
zipfile.ZIP_BZIP2BZIP2圧縮(bz2モジュールが必要)
zipfile.ZIP_LZMALZMA圧縮(lzmaモジュールが必要)
zipfile.ZipFile()の第3引数

zipファイルの解凍

以下はzipファイルを解凍するサンプルコードです。

extractall()関数を使用して、zipファイルを解凍します。

import zipfile

with zipfile.ZipFile('test.zip') as existing_zip:
    existing_zip.extractall('test')

Pythonでファイル操作をするには、open()関数が便利

ここまで、Pythonのファイル操作(読込、書込、削除、zip圧縮・解凍)について、見てきました。

Pythonのファイル操作をマスターするには、open()関数の使い方をしっかりと理解する必要があります。

是非、ここで知った知識を実際のプログラミングに活かして下さい。

ここまでお読み頂き、ありがとうございました。

もし、「面白かった」、「参考になった」という方がいましたら、以下のソーシャルボタンからシェア頂けると泣いて喜びます!!

エソラ
エソラ
またブログランキングにも参加しています。
よろしければ、ポチッとお願いしまーす!

それでは、良いエンジニアライフをお過ごし下さい!

最新情報をチェックしよう!