今回は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=’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_BZIP2 | BZIP2圧縮(bz2 モジュールが必要) |
zipfile.ZIP_LZMA | LZMA圧縮(lzma モジュールが必要) |
zipファイルの解凍
以下はzipファイルを解凍するサンプルコードです。
extractall()関数を使用して、zipファイルを解凍します。
import zipfile
with zipfile.ZipFile('test.zip') as existing_zip:
existing_zip.extractall('test')
Pythonでファイル操作をするには、open()関数が便利
ここまで、Pythonのファイル操作(読込、書込、削除、zip圧縮・解凍)について、見てきました。
Pythonのファイル操作をマスターするには、open()関数の使い方をしっかりと理解する必要があります。
ぜひ、ここで知った知識を実際のプログラミングに活かして下さい。
コメント
コメント一覧 (3件)
[…] 【Python入門】ファイル操作(読込、書込、削除、zip圧縮・解凍) […]
[…] 【Python入門】ファイル操作(読込、書込、削除、zip圧縮・解凍) […]
[…] 【Python入門】ファイル操作(読込、書込、削除、zip圧縮・解凍) […]