ここでは、Python初心者がディレクトリ操作する際の「os」モジュールで覚えておくと良い使用例を紹介しています。
この記事の対象
作業ディレクトリを知る・移動する(os.getcwd() / os.chdir())
作業ディレクトリを取得する方法は「os.getcwd()」になります。
import os
print("現在:", os.getcwd()) # 例) /Users/you/project
os.chdir("env") # docs/ に移動
print("移動後:", os.getcwd())
つまずきやすい点ですが、相対パスは「今いる場所」基準。意図しない場所で動いていないか、print(os.getcwd())
で毎回確認をしたほうが無難です。
結果
現在: C:\Users\you\project
移動後: C:\Users\you\project\env
pathlib
from pathlib import Path
p = Path.cwd()
print(p) # 現在地
結果
C:\Users\you\project
ディレクトリを作成 ⇒ os.mkdir()
ディレクトリの作成は「os.mkdir()」になります。
import os
os.mkdir("new_directory")
【結果】
省略
ディレクトリ名を変更 ⇒ os.rename()
ディレクトリ名を変更する場合は「os.rename()」になります。
import os
os.rename("new_directory", "renamed_directory")
【結果】
省略
詳細はこちらをご参照下さい。
ファイルを削除 ⇒ os.remove()
ファイルを削除する場合は「os.remove()」になります。
import os
os.remove("file_to_delete.txt")
【結果】
省略
パスを連結 ⇒ os.path.join()
任意のPathを連結したい場合は「os.path.join()」になります。
import os
cwd = os.getcwd()
new_path = os.path.join(cwd, "renamed_directory", "new_file.txt")
print("新しいパス:", new_path)
【結果】
新しいパス: C:\hoge\hogehoge\renamed_directory\new_file.txt
パスを分割 ⇒ os.path.split()
任意のPathを分割したい場合は「os.path.split()」になります。
import os
new_path = "C:\hoge\hogehoge\src\renamed_directory\new_file.txt"
# パスを分割する
dir_name, file_name = os.path.split(new_path)
print("ディレクトリ名:", dir_name)
print("ファイル名:", file_name)
【結果】
ディレクトリ名: C:\hoge\hogehoge\src\renamed_directory
ファイル名: new_file.txt
Pathの検証 ⇒ os.path.isdir() os.path.isfile()
Pathの検証の場合は「os.path.isdir()」「os.path.isfile()」でそれぞれ指定のPathがディレクトリかファイルかが分かります。
import os
new_path = r"C:\hoge\hogehoge\src\renamed_directory\new_file.txt"
is_dir = os.path.isdir("renamed_directory")
is_file = os.path.isfile(new_path)
print("ディレクトリかどうか:", is_dir)
print("ファイルかどうか:", is_file)
【結果】
ディレクトリかどうか: True
ファイルかどうか: False
予めディレクトリを作成しておき、ファイルだけ無い場合は上記になります。
ファイルの存在確認 ⇒ os.path.exists()
ファイルの存在確認をしたい場合は「os.path.exists()」になります。
import os
new_path = r"C:\hoge\hogehoge\src\renamed_directory\new_file.txt"
if os.path.exists(new_path):
print("ファイルが存在します。")
else:
print("ファイルが存在しません。")
【結果】
ファイルが存在しません。