St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

pythonでファイルとかディレクトリ操作【随時更新】

こんにちは。

個人的によくつかうものとかを気づいたらまとめていこうかと思います。

ファイルの操作

〇ファイル名の取得

import ntpath
file_name = os.path.basename("hoge/hoge.txt") # hoge.txt

◯ファイルの存在確認

import os
path = "hoge/hoge.txt"
os.path.isfile(path) # True => ある, False => ない

〇ファイルの削除

import os
file_path = "file/path"
os.remove(path)

ディレクトリの操作

ディレクトリの存在確認

import os
path = "hoge/hoge"
os.path.isdir(path) # True => ある, False => ない

◯ファイルまたはディレクトリの存在確認

import os
path = "hoge/hoge"
os.path.exists(path) # True => ある, False => ない

ディレクトリの作成

import os
dir_path = "hoge/fuga" # このとき、hogeディレクトリは既に存在している必要がある
os.mkdir(dir_path)

〇深いディレクトリの作成

import os
dir_path = "hoge/fuga/piyo/piyo"  # hogeディレクトリとかは存在していなくてもよい
os.makedirs(dir_path, exist_ok=True)

exitst_ok=Trueをづけることで、たとえディテクトリガ存在していてもエラーがでない。

◯あるディレクトリ下のディレクトリやファイルを再帰的に取得する

import os

# 基準となるディレクトリ
path = "hoge"

for root, dirs, files in os.walk(directory):
  # ディレクトリ
  print(root)
  for file_path in files:
     # ディレクトリ内のファイル
     print(file_path)

ディレクトリの削除

空のディレクトリの削除。

import os
os.rmdir(path)

再帰的に空のディレクトリを削除する

import os
os.removedirs(path)

ディレクトリの再帰的な削除

空であっても、空でなくても再帰的に全て削除する。

import shutil
shutil.rmtree(path)

Pathの操作

◯ファイルパスの結合

import os
path1 = "hoge/hoge"
path2 = "hoge/hoge"
path3 = os.path.join(path1, path2)