path, mode) |
True
を、そうでない場合 False
を返します。詳細は access(2) のマニュアルページを参照して
ください。
利用できる環境: Macintosh、 Unix、 Windows
注意: access() を使ってユーザーが例えばファイルを開く権限を持っているか open() を使って実際にそうする前に調べることはセキュリティ・ホールを 作り出してしまいます。というのは、調べる時点と開く時点の時間差を利用して そのユーザーがファイルを操作してしまうかもしれないからです。
注意: I/O 操作は access() が成功を思わせるときにも失敗することがありえます。 特にネットワーク・ファイルシステムにおける操作が 通常の POSIX 許可ビット・モデルをはみ出す意味論を備える場合には そのようなことが起こりえます。
path) |
) |
) |
path) |
path, mode) |
S_ISUID
S_ISGID
S_ENFMT
S_ISVTX
S_IREAD
S_IWRITE
S_IEXEC
S_IRWXU
S_IRUSR
S_IWUSR
S_IXUSR
S_IRWXG
S_IRGRP
S_IWGRP
S_IXGRP
S_IRWXO
S_IROTH
S_IWOTH
S_IXOTH
注意:
Windows でも chmod() はサポートされていますが、
ファイルの読み込み専用フラグを
(定数 S_IWRITE
と S_IREAD
、または対応する整数値を通して)
設定できるだけです。
他のビットは全て無視されます。
path, uid, gid) |
path, uid, gid) |
src, dst) |
path) |
'.'
および '..'
は、それらがディレクトリに入っていてもリストには含められません。
利用できる環境: Macintosh、 Unix、 Windows。
バージョン 2.3 で 変更 された仕様: Windows NT/2k/XP と Unixでは、path が Unicode オ ブジェクトの場合、Unicode オブジェクトのリストが返されます。
path) |
path[, mode]) |
0666
(8進)
です。現在の umask 値が前もって mode からマスクされます。
利用できる環境: Macintosh、 Unix。
FIFO は通常のファイルのようにアクセスできるパイプです。FIFO は (例えば os.unlink() を使って) 削除されるまで 存在しつづけます。一般的に、FIFO は ``クライアント'' と ``サーバ'' 形式のプロセス間でランデブーを行うために使われます: このとき、 サーバは FIFO を読み出し用に開き、クライアントは書き込み用に 開きます。mkfifo() は FIFO を開かない -- 単にランデブー ポイントを作成するだけ -- なので注意してください。
filename[, mode=0600, device]) |
device) |
device) |
major, minor) |
path[, mode]) |
0777
(8進)です。
システムによっては、 mode は無視されます。利用の際には、
現在の umask 値が前もってマスクされます。
利用できる環境: Macintosh、 Unix、Windows。
path[, mode]) |
0777
(8進)です。
システムによっては、 mode は無視されます。利用の際には、
現在の umask 値が前もってマスクされます。
注意:
makedirs() は作り出すパス要素が os.pardir を
含むと混乱することになります。
バージョン 1.5.2 で 新たに追加 された仕様です。
バージョン 2.3 で 変更 された仕様:
この関数は UNC パスを正しく扱えるようになりました
path, name) |
pathconf_names
辞書で与えられています。このマップ型オブジェクトに入っていない設定
変数については、 name に整数を渡してもかまいません。
利用できる環境: Macintosh、Unix
もし name が文字列でかつ不明である場合、 ValueError
を送出します。name の指定値がホストシステムでサポートされておらず、
pathconf_names
にも入っていない場合、errno.EINVAL
をエラー番号として OSError を送出します。
path) |
os.path.join(os.path.dirname(path), result)
を使って絶対パスに変換することができます。
利用できる環境: Macintosh、 Unix。
path) |
path) |
src, dst) |
old, new) |
path) |
path) |
>>> import os >>> statinfo = os.stat('somefile.txt') >>> statinfo (33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732) >>> statinfo.st_size 926L >>>
バージョン 2.3 で 変更 された仕様: もし stat_float_times が真を返す場合、時間値は浮動小数点で秒を計ります。ファイルシステムがサポートしていれば、秒の小数点以下の桁も含めて返されます。 Mac OS では、時間は常に浮動小数点です。詳細な説明は stat_float_times を参照してください
(Linux のような) Unix システムでは、以下の属性: st_blocks (ファイル用にアロケーションされているブロック数)、 st_blksize (ファイルシステムのブロックサイズ)、 st_rdev (i ノードデバイスの場合、デバイスの形式)、 st_flags (ファイルに対するユーザー定義のフラグ) も利用可能なときがあります。
他の (FreeBSD のような) Unix システムでは、以下の属性: st_gen (ファイル生成番号)、 st_birthtime (ファイル生成時刻) も利用可能なときがあります (ただし root がそれらを使うことにした場合以外は値が入っていないでしょう)。
Mac OS システムでは、以下の属性: st_rsize、 st_creator、 st_type、 も利用可能なときがあります。
RISCOS システムでは、以下の属性: st_ftype (file type)、 st_attrs (attributes)、 st_obtype (object type)、 も利用可能なときがあります。
後方互換性のために、stat() の戻り値は少なくとも 10 個の 整数からなるタプルとしてアクセスすることができます。このタプルは もっとも重要な (かつ可搬性のある) stat 構造体のメンバを 与えており、以下の順番、 st_mode、 st_ino、 st_dev、 st_nlink、 st_uid、 st_gid、 st_size、 st_atime、 st_mtime、 st_ctime、 に並んでいます。
実装によっては、この後ろにさらに値が付け加えられていることもあります。 Mac OS では、時刻の値は Mac OS の他の時刻表現値と同じように浮動小数点数 なので注意してください。 標準モジュール stat では、 stat 構造体から情報を引き出す上で便利な関数や定数を定義して います。(Windows では、いくつかのデータ要素はダミーの値が埋められて います。)
注意: st_atime, st_mtime, および st_ctime メンバの厳密な意味や精度はオペレーティングシステムやファイルシステムによって 変わります。例えば、FAT や FAT32 ファイルシステムを使っているWindows システム では、st_atime の精度は 1 日に過ぎません。詳しくはお使いのオペレーティング システムのドキュメントを参照してください。
利用できる環境: Macintosh、 Unix、Windows。
バージョン 2.2 で 変更 された仕様: 返されたオブジェクトの属性としてのアクセス機能を追加しました バージョン 2.5 で 変更 された仕様: st_gen、 st_birthtime を追加しました
[newvalue]) |
True
の場合、
以後の stat() 呼び出しは浮動小数点を返し、
False
の場合には以後整数を返します。newvalue が省略された場合、現在の設
定どおりの戻り値になります。
古いバージョンの Python と互換性を保つため、stat_result にタプル としてアクセスすると、常に整数が返されます。
バージョン 2.5 で 変更 された仕様: Python はデフォルトで浮動小数点数を返すようになりました。 浮動小数点数のタイムスタンプではうまく動かないアプリケーションはこの機能を利用して 昔ながらの振る舞いを取り戻すことができます。
タイムスタンプの精度 (すなわち最小の小数部分) はシステム依存です。 システムによっては秒単位の精度しかサポートしません。 そういったシステムでは小数部分は常に 0 です。
この設定の変更は、プログラムの起動時に、 __main__ モジュールの中でのみ行うことを推奨します。 ライブラリは決して、この設定を変更するべきではありません。 浮動小数点型のタイムスタンプを処理すると、不正確な動作をするようなライブ ラリを使う場合、ライブラリが修正されるまで、浮動小数点型を返す機能を停止 させておくべきです。
path) |
後方互換性のために、戻り値は上の順にそれぞれ対応する属性値が並んだ タプルとしてアクセスすることもできます。 標準モジュール statvfs では、 シーケンスとしてアクセスする場合に、statvfs 構造体から情報を 引き出す上便利な関数や定数を定義しています; これは 属性として各フィールドにアクセスできないバージョンの Python で 動作する必要のあるコードを書く際に便利です。 バージョン 2.2 で 変更 された仕様: 返されたオブジェクトの属性としてのアクセス機能を追加しました
src, dst) |
[dir[, prefix]]) |
None
の場合には一時ファイルを置くための共通の
ディレクトリの下になります。prefix が与えられており、かつ
None
でない場合、ファイル名の先頭につけられる短い
接頭辞になります。アプリケーションは tempnam()
が返したパス名を使って正しくファイルを生成し、生成したファイルを
管理する責任があります; 一時ファイルの自動消去機能は提供されて
いません。
警告:
tempnam() を使うと、symlink 攻撃に対して脆弱
になります; 代りにtmpfile() (第14.1.2節)
を使うよう検討してください。
利用できる環境: Macintosh、 Unix、 Windows。
) |
警告: tmpnam() を使うと、symlink 攻撃に対して脆弱 になります; 代りにtmpfile() (第14.1.2節) を使うよう検討してください。 利用できる環境: Unix、Windows。 この関数はおそらく Windows では使うべきではないでしょう; Micorosoft の tmpnam() 実装では、常に現在のドライブの ルートディレクトリ下のファイル名を生成しますが、これは一般的には テンポラリファイルを置く場所としてはひどい場所です (アクセス権限によっては、この名前をつかってファイルを開くことすら できないかもしれません)。
path) |
path, times) |
None
の場合、ファイルの最終
アクセス時刻および最終更新時刻は現在の時刻になります。そうでない
場合、 times は 2 要素のタプルで、(atime, mtime)
の形式をとらなくてはなりません。これらはそれぞれアクセス時刻および修正時刻
を設定するために使われます。
path にディレクトリを指定できるかどうかは、オペレーティングシステム
がディレクトリをファイルの一種として実装しているかどうかに依存します (例えば、
Windows はそうではありません)。ここで設定した時刻の値は、オペレーティング
システムがアクセス時刻や更新時刻を記録する際の精度によっては、後でstat()
呼び出したときの値と同じにならないかも知れないので注意してください。
stat() も参照してください。
バージョン 2.0 で 変更 された仕様:
times として None
をサポートするように
しました
利用できる環境: Macintosh、 Unix、Windows。
top[, topdown=True
[, onerror=None ]]) |
(dirpath,
dirnames, filenames)
を生成します。
dirpath は文字列で、ディレクトリへのパスです。dirnames は
dirpath 内のサブディレクトリ名のリスト ('.'
と '..'
は除く)です。filenames は dirpath 内の非ディレクトリ・ファ
イル名のリストです。このリスト内の名前には、ファイル名までのパスが含まれ
ないことに、注意してください。dirpath 内のファイルやディレクトリへ
の (top からたどった) フルパスを得るには、
os.path.join(dirpath, name)
してください。
オプション引数 topdown が真であるか、指定されなかった場合、各ディ レクトリからタプルを生成した後で、サブディレクトリからタプルを生成します。 (ディレクトリはトップダウンで生成)。topdown が偽の場合、ディレクト リに対応するタプルは、そのディレクトリ以下の全てのサブディレクトリに対応 するタプルの後で (ボトムアップで) 生成されます
topdown が真のとき、呼び出し側は dirnames リストを、インプレ ースで (たとえば、del やスライスを使った代入で) 変更でき、 walk() はdirnames に残っているサブディレクトリ内のみを 再帰します。これにより、検索を省略したり、特定の訪問順序を強制したり、呼 び出し側が walk() を再開する前に、呼び出し側が作った、または 名前を変更したディレクトリを、walk() に知らせたりすることがで きます。topdown が偽のときに dirnames を変更しても効果はあり ません。ボトムアップモードでは dirpath 自身が生成される前に dirnames 内のディレクトリの情報が生成されるからです。
デフォルトでは、os.listdir()
呼び出しから送出されたエラーは
無視されます。オプションの引数 onerror を指定するなら、
この値は関数でなければなりません; この関数は単一の引数として、
OSError インスタンスを伴って呼び出されます。この関数では
エラーを報告して歩行を続けたり、例外を送出して歩行を中断したり
できます。ファイル名は例外オブジェクトの filename
属性として
取得できることに注意してください。
os.path.islink(path)
でリンク先ディレクトリを確認し、各ディ
レクトリに対して walk(path)
を実行するとよいでしょう。
以下の例では、最初のディレクトリ以下にある各ディレクトリに含まれる、非ディレクトリファイルのバイト数を表示します。ただし、CVS サブディレクトリより下を見に行きません。
import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/email'): print root, "consumes", print sum(getsize(join(root, name)) for name in files), print "bytes in", len(files), "non-directory files" if 'CVS' in dirs: dirs.remove('CVS') # don't visit CVS directories
次の例では、ツリーをボトムアップで歩行することが不可欠になります; rmdir() はディレクトリが空になる前に削除させないからです:
# Delete everything reachable from the directory named in 'top', # assuming there are no symbolic links. # CAUTION: This is dangerous! For example, if top == '/', it # could delete all your disk files. import os for root, dirs, files in os.walk(top, topdown=False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: os.rmdir(os.path.join(root, name))
バージョン 2.3 で 新たに追加 された仕様です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。