open関数とpathlib.Path.touch/write_textメソッドを使ってファイルを作成する方法と、os.remove関数とPath.unlinkメソッドを使ってファイルを削除する方法を紹介。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
# ファイルの作成
# open関数を使ったファイル作成
f = open('myfile0.txt', 'w') # ファイルを書き込みモードでオープンして
f.close() # クローズする
# with文とopen関数を使ったファイル作成
with open('myfile1.txt', 'w') as f:
pass
# 既に存在するファイルを上書きしたくなければ、mode引数に'x'を指定
f = open('myfile0.txt', 'x') # FileExistsError
# pathlib.Pathクラスのtouchメソッドを使ったファイル作成
from pathlib import Path
p0 = Path('myfile2.txt')
p0.touch()
# pathlib.Pathクラスのwrite_textメソッドを使ったファイル作成
p1 = Path('myfile3.txt')
p1.write_text('') # 0バイトを書き込むことでファイルを作成
# ファイルの削除
# os.remove関数を使ったファイル削除
import os
os.remove('myfile0.txt')
os.remove('myfile1.txt')
# pathlib.Pathクラスのunlinkメソッドを使ったファイル削除
p0.unlink()
p1.unlink()
ちょっとしたテストを目的としてPythonコードからファイルを作成したいことはよくある。このようなときにはファイルの内容についてはどうでもよい。こうしたときにファイルを作成するには以下の方法が考えられる。
この2つについてそれぞれ見ていこう。
open関数を使ってファイルを作成する例を以下に示す。
f = open('myfile0.txt', 'w') # ファイルを書き込みモードでオープンして
f.close() # クローズする
上のコードは何も書き込まずにファイルをクローズしているが、書き込みモードでファイルをオープンした時点でファイルが作成されるのでこれで十分なはずだ(pathlib.Path.touchメソッドの実装ではos.open関数を使って同様な処理を行っている)。
Pythonではwith文を使って、ファイルのオープンとクローズが対として実行されるようにするのが一般的だ。そのため、上のコードは以下のように書く方がよいだろう。
with open('myfile1.txt', 'w') as f:
pass
既存のファイルを削除してしまうのを避けたいのであれば、open関数のmode引数に'x'(排他的に作成)を指定すればよい。
f = open('myfile0.txt', 'x') # FileExistsError
このコードではmode引数に'x'を指定した上で「myfile0.txt」という名前のファイルを作成しようとしているが、上のコード例で既に作成しているのでFileExistsError例外が発生する。
Copyright© Digital Advantage Corp. All Rights Reserved.