LoginSignup
0
0

More than 1 year has passed since last update.

Python関数-ファイル操作

Last updated at Posted at 2021-07-04

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 作成されずに続行

とりあえずここまで! 検索するたびにここに追記!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0