Pythonに触り初めて約一年、毎回同じことを調べてしまっていてプログラマーとしての成長が皆無なので、それらを記録、暗記して仕事効率を上げる
調べてみて、これ前にも調べたなってなったらここに記録。
あくまで自分用だが、初心者の人は自分と似たようなこと調べてるんじゃないかな?
基本となるライブラリ
import os
import glob
パスの操作(フォルダ検索など)
フォルダ内のファイルの全てのパス検索(glob.glob())
フォルダ内のパスを一括で検索
用法:glob.glob("folder_path\*")
path_list = glob.glob(r"D:\Documents\tool\test_folder\*")
結果
[
'D:\\Documents\\tool\\test_folder\\1.txt', 'D:\\Documents\\tool\\test_folder\\2.txt', 'D:\\Documents\\tool\\test_folder\\3.txt', 'D:\\Documents\\tool\\test_folder\\4.txt'
]
パスの結合(os.path.join())
パス同士を結合する。あるフォルダの下に、特定の名前のファイルを作るときとか便利。
stringどうしを+で繋げてもいいが、こっちだと"\"を付けるかどうかを考慮しなくていい?
用法:os.path.join(PathA,PathB,PathC,・・・)
path = os.path.join(r"D:\Documents\tool\test_folder","5.txt")
結果
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")
結果
hello.txt
pathの分割 : ファイル名とそれ以外を分解(os.path.split())
パスをファイル名とそれ以外で分解
用法:os.path.split(file_path)
sp = os.path.split(r"D:\Documents\tool\test_folder\hello.txt")
結果
('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")
結果
('D:\\Documents\\tool\\test_folder\\hello', '.txt')
pathの分割 : 指定文字("\"とか)で分割(string.split())
osではなく、stringとしての処理。
Pythonを段階的に学んできたわけではないので、こういう基本的な処理が抜けてて恥ずかしくなる。
用法:"path".split("分割する文字")
python
pathA = r"D:\Documents\tool\test_folder\hello.txt"
sp = pathA.split("\\")
結果
['D:', 'Documents', 'tool', 'test_folder', 'hello.txt']
あとは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")
結果
True (フォルダが存在する場合)
ディレクトリの作成(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)
結果
フォルダが作成される or 作成されずに続行