主な関数
os.getcwd()
- カレントディレクトリー。プログラム実行直後は実行中のディレクトリーを指している。実行ファイルのディレクトリー情報を得るには
__file__
を使うとよい。 os.path.dirname(dir)
dir
のディレクトリーのフルパス。os.listdir(dir)
dir
にあるファイル・ディレクトリーのリスト。os.chdir(dir)
dir
に移動。存在しない場合は’NotADirectoryError’をスローする。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import sys import os if len(sys.argv) > 1: target_directory = sys.argv[1] try: os.chdir(target_directory) except NotADirectoryError as e: print("Error: Directory not exists") sys.exit() print("Specified directory: {}".format(target_directory)) print() cwd = os.getcwd() print('current working directory:', cwd) print('directory name :', os.path.dirname(cwd)) print('list of directories :', os.listdir(cwd)) |
実行結果
1 2 3 4 5 6 |
C:\...\python\packages\os>test_os.py "C:\...\python\packages\os" Specified directory: C:\...\python\packages\os current working directory: C:\...\python\packages\os directory name : C:\...\python\packages list of directories : ['dir1', 'dir2', 'test-01.txt', 'test-02.txt', 'test_os.py'] |
ファイル/ディレクトリーの判定
ファイルの判定はos.path.isfile(target)
。ディレクトリーの判定はos.path.isdir(target)
。
1 2 3 4 5 6 7 |
print("\nFile or directory") for file in os.listdir(cwd): if os.path.isfile(file): print('f ', end='') else: print('d ', end='') print(file) |
実行結果
1 2 3 4 5 6 |
File or directory d dir1 d dir2 f test-01.txt f test-02.txt f test_os.py |