【初心者〜現場で活躍まで】挫折しないPython勉強方法もっと知る

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

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

この記事で分かること
  • ファイルの読み込み
  • 書き込み
  • 削除
  • zip圧縮・解凍

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

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()の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()関数の使い方をしっかりと理解する必要があります。

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

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

役に立った、面白かったと思ったら、SNSでシェアしてくれると嬉しいです。

エソラ

もし分からないことがあれば、お問い合わせTwitterにご連絡をいただけると嬉しいです。(Twitterの方が返信早いかも…)

\ 更新の励みになるので、ポチッとしてね /

エソラ

他にもスキルアップやキャリアアップの役に立つ情報が満載です。他の記事も読んで、ゆっくりしていってね!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (3件)

【Python入門】osモジュールの使い方│とあるエンジニアのエソラゴト へ返信する コメントをキャンセル

目次