Programmer's Gate / Effective Python /ファイルシステム操作

1   ファイル、ディレクトリの操作

import os
os.chdir(path)                                現在の作業ディレクトリ path に設定する
os.getcwd()                                   現在の作業ディレクトリを表現する文字列を返す
os.chmod(path, mode)                          path のモードを数値 mode に変更する
os.listdir(path)                              path内のファイル、ディレクトリのリストを返す
os.mkdir(path[,mode])                         数値で指定されたモード mode をもつディレクトリ path を作成する
os.mkdirs(path[,mode])                        再帰的にディレクトリを作成する
os.remove(path)                               ファイル path を削除する
os.removedirs(path)                           再帰的にディレクトリを削除する
os.rename(src, dst)                           ファイルまたはディレクトリ src を dst に名前変更する
os.renames(old, new)                          再帰的にディレクトリやファイル名を変更する
os.rmdir(path)                                ディレクトリ path を削除する
os.tmpfile()                                  一時ファイルのファイルオブジェクトを返す
os.walk(top[,topdown=True[,oneerror=None]])   ディレクトリ top を根に持つディレクトリツリーに含まれる、
                                              各ディレクトリ
(top 自身を含む) から、
                                              タプル 
(dirpath, dirnames, filenames) を生成する

import glob
glob.glob("*.exe")                            ワイルドカードによるファイルのリストを取得

import os
os.path.abspath(path)                         pathの標準化された絶対パスを返す
os.path.basename(path)                        パス名pathの末尾のファイル名を返す
os.path.commonprefix(list)                    パスのlistの中の共通する最長のプレフィックスを
                                              
(パス名の1文字1文字を判断して)返す
os.path.dirname(path)                         パスpathのディレクトリ名を返す
os.path.exists(path)                          pathが存在するなら、Trueを返す
os.path.expanduser(path)                      与えられた引数の最初の"~"または"~user"を、
                                              
userのホームディレクトリのパスに置き換えて返す
os.path.expandvars(path)                      引数のパスを環境変数に展開して返す
                                              引数の中の
"$name"または"${name}"の文字列が環境変数のnameに置き換えられる
os.path.getatime(path)                        pathに最後にアクセスした時刻を、エポックからの経過時間を示す秒数で返す
os.path.getmtime(path)                        pathの最終更新時刻を、エポックからの経過時間を示す秒数で返す
os.path.getctime(path)                        システムによって、ファイルの最終変更時刻(Unix のようなシステム)
                                              作成時刻
(Windows のようなシステム)をシステムの ctime で返す
os.path.getsize(path)                         ファイルpathのサイズをバイト数で返す
os.path.isabs(path)                           pathが絶対パス(スラッシュで始まる)なら、Trueを返す
os.path.isfile(path)                          pathが存在する正しいファイルなら、Trueを返す
os.path.isdir(path)                           pathが存在するなら、Trueを返す
os.path.islink(path)                          pathがシンボリックリンクなら、Trueを返す
os.path.ismount(path)                         パス名pathがマウントポイントmount point
                                              
(ファイルシステムの中で異なるファイルシステムがマウントされているところ)
                                              なら、
True を返す
os.path.join(path[,path...])                  パスに1つあるいはそれ以上のパスの要素をうまく結合する
os.path.normcase(path)                        パス名の大文字、小文字をシステムの標準にする
os.path.normpath(path)                        パス名を標準化する
os.path.split(path)                           パス名path(headtail)のペアに分割する
os.path.splitdrive(path)                      パス名path(drive,tail)のペアに分割する
os.path.splitext(path)                        パス名path(root, ext)のペアにする。 root + ext == pathになる

import shutil
shutil.copyfile(src, dst)                     srcで指定されたファイル内容をdstで指定されたファイルへとコピーする
shutil.copyfileobj(fsrc, fdst[,length])       ファイル形式のオブジェクトfsrcの内容をfdstへコピーする
shutil.copymode(src, dst)                     srcからdstへパーミッションをコピーする
shutil.copystat(src, dst)                     srcからdstへパーミッション最終アクセス時間、最終更新時間をコピーする。
                                              ファイル内容や所有者、グループは影響を受けない
shutil.copy(src, dst)                         ファイルsrcをファイルまたはディレクトリdistへコピーする
shutil.copy2(src, dst)                        copy()と類似しているが、最終アクセス時間や最終更新時間も同様にコピーされる。
                                              これは 
Unix コマンドの cp -p と同様の働きをする
shutil.copytree(src, dst[,symlinks])          srcを起点としてディレクトリツリー全体を再帰的にコピーする
shutil.rmtree(path[,ignore_errors[,onerror]]) ディレクトリツリー全体を削除する
shutil.move( src, dst)                        再帰的にファイルやディレクトリを別の場所へ移動する
import os
for root, dirs, files in os.walk('C:\Python25'):
    
for fname in files:
        
print os.path.join(root, fname)

参考文献:

  1. Python備忘録; ファイル操作 (http://reddog.s35.xrea.com/wiki/Python%C8%F7%CB%BA%CF%BF.html#aae4789f)
  2. Pythonライブラリリファレンス; 6.1.4 ファイルとディレクトリ (http://www.python.jp/doc/2.4/lib/os-file-dir.html)
  3. Pythonライブラリリファレンス; 6.2 os.path -- 共通のパス名操作 (http://www.python.jp/doc/2.4/lib/module-os.path.html)
  4. Doug Hellman: PyMOTW: os.path (http://blog.doughellmann.com/2008/01/pymotw-ospath.html)