Pythonでtouch
コマンドの実装方法
Unixのtouch
コマンドは、指定されたファイルのアクセス・修正時刻を更新し、ファイルが存在しない場合は新しく作成します。Python
でも同様の機能を簡単に実装できます。
pathlib
の使用
Python
3.4以降では、pathlib
モジュールのPath.touch()
メソッドが利用可能です。このメソッドを使うことで、ファイルの存在を確認し、ない場合は作成してタイムスタンプを更新します。
使用例
from pathlib import Path
Path('myfile.txt').touch()
これにより、myfile.txt
というファイルが存在しなければ作成され、すでに存在している場合はアクセス・修正時刻が更新されます。デフォルトで、ファイルパーミッションは777
が設定されますが、touch()
メソッドの引数で変更も可能です。
os.utime()
の使用
os.utime()
はファイルのアクセス・修正時刻を直接操作するためのメソッドです。os.utime()
を使うと、ファイルが存在しない場合は、別途open()
を使ってファイルを作成する必要があります。
使用例
import os
if not os.path.exists('myfile.txt'):
open('myfile.txt', 'a').close()
os.utime('myfile.txt', None)
この方法でも、touch
コマンドと同様の動作が実現できます。
結論
pathlib
のPath.touch()
は、簡潔で推奨される方法ですが、古いバージョンのPython
を使用している場合や、カスタム処理が必要な場合はos.utime()
が便利です。どちらの方法も、シンプルなファイル操作やタイムスタンプの更新に役立ちます。