2020/9/4 Python

Python ファイル操作の記述方法

ディレクトリを作成

import os

os.makedirs(path, exist_ok=True)

exist_ok=True を指定するとディレクトリが既に存在してもエラーが発生しない

os.makedirs

ファイルが存在するか確認する

import os

os.path.isfile(path)

os.path.isfile

ディレクトリから特定の拡張子のファイルのみを取得する

def get_file_paths(input_path, extensions):
    result = []
    files = os.scandir(input_path)
    for file in files:
        if file.is_dir():
            result.extend(get_file_paths(file.path, extensions))
        if file.is_file():
            temp, ext = os.path.splitext(file.path)
            ext = ext.lower()
            for extension in extensions:
                if ext == extension:
                    result.append(file.path)
                    break
    return result

os.scandir
os.path.splitext

CSVファイルを読み込む

import csv
import sys

def readcsv(path):
    try:
        result = []
        with open(path) as csvfile:
            reader = csv.reader(csvfile)
            for row in reader:
                result.append(row)
        return result
    except Exception as ex:
        print('ファイル読み込みエラー : ' + path + '\nエラー内容 : ' + str(ex))
        sys.exit(1)

open
csv.reader
sys.exit

CSVファイルを書き込む(EXCEL対応)

import codecs
import csv
import sys

def writecsv(path, data):
    try:
        with codecs.open(path, 'w', 'cp932') as csvfile:
            writer = csv.writer(csvfile)
            writer.writerows(data)
    except Exception as ex:
        print('ファイル書き込みエラー : ' + path + '\nエラー内容 : ' + str(ex))
        sys.exit(1)

codecs.open
csv.writer
sys.exit

バイナリファイルを読み込む

import sys

def readbinary(path):
    try:
        with open(path, "rb") as reader:
            return reader.read()
    except Exception as ex:
        print('ファイル読み込みエラー : ' + path + '\nエラー内容 : ' + str(ex))
        sys.exit(1)

open
sys.exit