基本的なファイル・ディレクトリ操作
▼使い方
以下は、cドライブ直下にtest.txtが存在し、カレントディレクトリ(作業フォルダ)が"C:"であることを前提
(Pythonは"c:python23"にインストールされている状態を前提)
なお、Python Shell上では[¥]記号はバックスラッシュ(\)で表示される。
([c:¥¥]→[c:\\])
バックスラッシュを入力したいときは¥キーを押せばよい。
>>> import os >>> os.getcwd() #現在のカレントディレクトリを調べる 'C:\\' >>> os.chdir("c:\\python23") #カレントディレクトリを移動する >>> os.getcwd() 'C:\\python23' >>> os.chdir("C:\\") >>> os.getcwd() 'C:\\' >>> os.access("test.txt", os.F_OK) #ファイルが存在するか調べる True #True:有る。 False:無い。 >>> os.access("test.txt", os.R_OK) #ファイルが読み込み可能か調べる True >>> os.access("test.txt", os.W_OK) #ファイルが書き込み可能か調べる True >>> os.access("test.txt", os.X_OK) #ファイルが実行可能か調べる True >>> os.path.isdir("c:python23") #ディレクトリが存在するか調べる True >>> os.path.isdir("c:None") False >>> os.path.isdir("c:Filename.txt") False >>> os.path.abspath("test.txt") #絶対パスを調べる 'C:\\test.txt' >>> (dir, file) = os.path.split("c:python23/python.exe") #パスを分割する >>> print dir c:python23 >>> print file python.exe >>> os.path.join(dir, file) #パスを結合する 'c:python23\\python.exe' #パスの区切りは自動的にosに合わせてくれる。 >>> path = os.path.join(dir, file) >>> os.path.exists(path) True >>> os.mkdir("testFlder") #ディレクトリ(フォルダ)を作る >>> os.listdir("") #子ディレクトリとファイルのリストを返す #【実行結果は省略】 >>> import shutil >>> shutil.copyfile("test.txt", "copytest.txt") #ファイルをコピーする >>> shutil.move("test.txt", "c:\\testFlder") #ファイルを移動する >>> shutil.move("c:\\testFlder\\test.txt", "c:\\") >>> os.rmdir("testFlder") #ディレクトリを削除する >>> os.mkdir("testFlder") >>> shutil.move("copytest.txt", "c:\\testFlder") >>> os.rmdir("testFlder") #ファイルの入っているディレクトリは削除できない Traceback (most recent call last): File "", line 1, in -toplevel- os.rmdir("testFlder") OSError: [Errno 41] Directory not empty: 'testFlder' >>> shutil.rmtree("testFlder") #中身のファイルごとディレクトリを削除する。 >>> import glob >>> glob.glob("test.*") #ワイルドカードを使ってファイル検索(リストを返す) ['test.txt'] >>> os.remove("test.txt") #ファイルを削除する。
参考:
6.1.4 ファイルとディレクトリ
http://www.python.jp/doc/release/lib/os-file-dir.html
6.2 os.path -- 共通のパス名操作
http://www.python.jp/doc/release/lib/module-os.path.html
6.25 shutil -- 高レベルなファイル操作
http://www.python.jp/doc/release/lib/module-shutil.html