ロゴ

プログラミング初心者がアプリ開発を目指すブログ

【Python入門】アクセス権限の操作 一時ファイルの作成- Python初心者勉強記021

今回も前回に引き続きファイル操作を見ていきます。アクセス権限に関する操作と一時ファイル作成を解説します。

ファイルシステム上の操作

アクセス権限の確認

osモジュールのaccess関数は、ファイルやディレクトリのアクセス権限を確認します。
os.access(パス,ファイルモード)


>>> os.access('temp.txt',os.R_OK)
True
>>> os.access('temp.txt',os.W_OK)
True
>>> os.access('temp.txt',os.X_OK)
False

アクセス権限の変更

osモジュールのchmod関数は、ファイルやディレクトリのアクセス権限を変更することができます。
モードは「0777」などの8進数で4桁で指定しますが、頭は0で固定です。2文字目は所有者、3文字目はグループ、4文字目はその他のユーザの権限を示します。
以下に、数字と実行権限の関係を示します。「r」が読み込み権限、「w」が書き込み権限、「x」が実行権限を示します。
0 —
1 –x
2 -w-
3 -wx
4 r–
5 r-x
6 rw-
7 rwx
つまり、「0777」は所有者・グループ・その他のユーザに読み込み書き込み・実行の全ての権限が与えられていることを示します。
os.chmod(パス,ファイルモード)


>>> os.chmod('temp.txt',0700)

テンポラリファイルの利用

一時的にファイルやディレクトリを作成するには、tempfileモジュールを利用します。
import tempfile

一時ディレクトリの作成

tempfileモジュールのmkdtemp関数は、一時ディレクトリを作成します。dir引数を指定すると、指定されたディレクトリ下に作成されます。なお、作成したディレクトリは明示的に削除する必要があります。
tempfile.mkdtemp(dir=ディレクトリ)


>>> tmpdir = tempfile.mkdtemp(dir='.')
>>> tmpdir
'./tmp4e0SVg'
>>> try:
...     os.path.isdir(tmpdir)
... finally:
...     shutil.rmtree(tmpdir)
... 
True

一時ファイルの作成

tempfileモジュールのmkstemp関数やNamedTemporaryFile関数を用いると、一時ディレクトリと同様に、一時ファイルを作成します。前者は作成したファイルを明示的に削除する必要があり、後者はcloseすると自動的に削除されます。

tempfile.mkstemp(dir=ディレクトリ)
tempfile.NamedTemporaryFile(dir=ディレクトリ)
mkstemp関数はファイル記述子とファイルの絶対パスを返します。
NamedTemporaryFile関数はファイルオブジェクトを返します。

次のプログラムではos.fdopenを使用しています。fdopenはほぼopenの機能と変わりませんが、最初の引数にはファイル記述子を指定します。fdopenが例外を起こした場合は、fdはそのままにされます(クローズされません)。


>>> tmpfd,tmpname=tempfile.mkstemp(dir='.')
>>> tmpfd
3
>>> tmpname
'/Users/UserName/Documents/python/temp/tmpR9KIPr'
>>> f=os.fdopen(tmpfd,'w+b') #バイナリモードで追加書き込み
>>> f.close()


>>> f = tempfile.NamedTemporaryFile(dir='.')
>>> f.name
'/Users/ishiihidenori/Documents/python/temp/tmpTEzsPT'
>>> f.close()

Python入門講座の次の記事はこちら => 【Python入門】関数- Python初心者勉強記022

スポンサード リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA