Pythonに触り初めて約一年、毎回同じことを調べてしまっていてプログラマーとしての成長が皆無なので、それらを記録、暗記して仕事効率を上げる
調べてみて、これ前にも調べたなってなったらここに記録。
あくまで自分用だが、初心者の人は自分と似たようなこと調べてるんじゃないかな?
基本となるライブラリ
import os
import glob
パスの操作(フォルダ検索など)
フォルダ内のファイルの全てのパス検索(glob.glob())
フォルダ内のパスを一括で検索
用法:glob.glob("folder_path\*")
path_list = glob.glob(r"D:\Documents\tool\test_folder\*")
結果
パスの結合(os.path.join())
パス同士を結合する。あるフォルダの下に、特定の名前のファイルを作るときとか便利。
stringどうしを+で繋げてもいいが、こっちだと""を付けるかどうかを考慮しなくていい?
用法:os.path.join(PathA,PathB,PathC,・・・)
path = os.path.join(r"D:\Documents\tool\test_folder","5.txt")
結果
パスからファイル名だけを取り出す(拡張子付き)(os.path.basename())
言わずもがな
用法:os.path.basename(file_path)
name = os.path.basename(r"D:\Documents\tool\test_folder\hello.txt")
結果
pathの分割 : ファイル名とそれ以外を分解(os.path.split())
パスをファイル名とそれ以外で分解
用法:os.path.split(file_path)
sp = os.path.split(r"D:\Documents\tool\test_folder\hello.txt")
結果
pathの分割 : 拡張子とそれ以外で分解(os.path.splitext())
パスを拡張子とそれ以外で分解。os.path.split()と似ているが、こっちはsplitextなので、text部分と拡張子部分を分けるって覚える?
用法:os.path.splitext(file_path)
sp = os.path.splitext(r"D:\Documents\tool\test_folder\hello.txt")
結果
pathの分割 : 指定文字("\"とか)で分割(string.split())
osではなく、stringとしての処理。
Pythonを段階的に学んできたわけではないので、こういう基本的な処理が抜けてて恥ずかしくなる。
用法:"path".split("分割する文字")
pathA = r"D:\Documents\tool\test_folder\hello.txt"
sp = pathA.split("\\")
結果
あとはindexで指定すればいい。sp[0]とかsp[-1とか]
ディレクトリが存在してるかどうかの検索(os.path.isdir())
指定したpathのフォルダが存在しているかをbool型で返してくれる。
後述のos.mkdir()とかでフォルダを作りたい時に、既にそのフォルダがあるとエラーになってしまう。そこで、これを使って先にフォルダがあるか無いかをチェックする。
用法:os.path.isdir(folder_path)
isflg = os.path.isdir(r"D:\Documents\tool\test_folder")
結果
ディレクトリの作成(os.mkdir())
指定したpathのディレクトリを作成。既に存在している場合は作成できずにエラーが出るので前述のos.path.isdir()と組み合わせる。
結果とかを一つのフォルダにまとめたりする時に頻出。
用法:os.mkdir(folder_path)
# os.path.isdir()と組み合わせる例。Falseの場合はディレクトリは作られない
pathB = r"D:\Documents\tool\test_folder\test"
isflg = os.path.isdir(pathB)
if isflg == False:
os.mkdir(pathB)