こんにちは、hokkyokunです。
Pythonのファイル、ディレクトリ操作で実際に使用したり、調べたりしたものを
備忘録的にまとめました。
何かのご参考にしていただければ幸いです。
スポンサーリンク
カレントディレクトリ
# osモジュールでとれる
import os
print(os.getcwd())
#>> C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks
# pathlibでも取れる
import pathlib
print(pathlib.Path.cwd())
#>> C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks
ディレクトリの移動1
# パス=C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks
# 一つ上の階層に移動
os.chdir("../")
#>> C:\Users\hokky\OneDrive\ドキュメント
# もう一度実行するとさらに一つ上の階層に移動
os.chdir("../")
print(os.getcwd())
#>> C:\Users\hokky\OneDrive
# ディレクトリまで移動
os.chdir("./ドキュメント/simulation_stocks")
print(os.getcwd())
#>> C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks
# 二回やるとさらに一つ上の階層に移動
os.chdir("../../")
print(os.getcwd())
#>> C:\Users\hokky\OneDrive
# ディレクトリまで移動する際、パスを間違える(飛ばすとエラー)
os.chdir("./simulation_stocks")
print(os.getcwd())
#>> FileNotFoundError
ディレクトリの移動2
# パス=C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks
os.chdir("../../")
print(os.getcwd())
#>> C:\Users\hokky\OneDrive
# 絶対パスでもOK
file_path="C:/Users/hokky/OneDrive/ドキュメント/simulation_stocks"
os.chdir(file_path)
print(os.getcwd())
#>> C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks
ディレクトリ内のファイル取得
import glob
#カレントディレクトリの下の階層に「temporarily_saved」というディレクトリがあります。
#その中のcsvファイルを全て取得
files=glob.glob("./temporarily_saved/*.csv")
print(files)
#>> ['./temporarily_saved\\VTI (1).csv', './temporarily_saved\\VTI.csv']
#カレントディレクトリを移動してからファイル取得すると、相対パスが見やすくなる
os.chdir("./temporarily_saved")
files=glob.glob("./*.csv")
print(files)
#>> ['.\\VTI (1).csv', '.\\VTI.csv']
ファイル操作
#file_path="C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks\vti.csv"を相対パスで取得
print(file_path)
#>> .\VTI.csv
#ファイル名(拡張子あり)
file_name=os.path.basename(file_path)
print(file_name)
#>> VTI.csv
#ファイル名(拡張子でスプリット)
file_name_without_ext=os.path.splitext(file_name)
print(file_name_without_ext)
#>> ('VTI', '.csv')
#相対パスを絶対パスに変更
abs_path=os.path.abspath(file_path)
print(abs_path)
#>> C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks\temporarily_saved\VTI.csv
#ファイルパスからディレクトリ名を取得(絶対パス)
abs_dir=os.path.dirname(abs_path)
print(abs_dir)
#>> C:\Users\hokky\OneDrive\ドキュメント\simulation_stocks\temporarily_saved
#ファイルパスからディレクトリ名を取得(相対パス)
file_dir=os.path.dirname(file_path)
print(file_dir)
#>> .
ファイルの更新日時取得
import datetime
import os
time_stamp=os.path.getmtime(file_name) # 1651999816.6657584 ⇒timestampなので変換が必要
update_time=datetime.datetime.fromtimestamp(time_stamp)
print(update_time)
#>> 2022-05-08 17:50:16.665758
スポンサーリンク