【python】テキストから特定の行を取り出す

【python】テキストから特定の行を取り出す

   テキストに保存したデータから特定の行を取り出します。外部のtxtに設定データを保存しておいて読み込むことを前提とします。

サンプルプログラム

【t_get.py】

import sys
from os import path

##自作モジュールのインポート##
m_path = path.join(path.dirname(__file__),"under")
sys.path.append(m_path)
import yomikomi


def t_get(rf_path,row):
    read_file=yomikomi.d_yomikomi(rf_path)
    get_txt=read_file[row]
    print(get_txt)

    
    
if __name__ == '__main__':
    rf_name="f_name.txt"
    rf_path = path.join(path.dirname(__file__),rf_name)
    row=2
    text=t_get(rf_path,row)

【自作モジュール yomikomi.py】

import os
from os import path
import codecs 


def d_yomikomi(r_path):

    r_txt = codecs.open(r_path, 'r', 'UTF-8')
    r_txt_list = []
    for x in r_txt:
        r_txt_list.append(x)
    r_txt.close()
    return r_txt_list
    
    
if __name__ == '__main__':
    print("mainとして実行")
    rf_name="hoge.csv"
    rr_path = path.join(path.dirname(__file__),rf_name)
    c=d_yomikomi(rr_path)
    print(c)

実行結果&解説

 t_get.pyを直接実行すると17行目から処理がはじまり、rf_pathのパスで指定されたテキストファイルのrowで指定された3行目(row=2ですが3行目は0,1,2で2となる)を取り出します。
 11行目で自作モジュールでテキストファイルを行ごとにリスト形式で取り込みます(今回はunderフォルダに配置しているで5~7行目の記述した自作モジュールyomikomiを使っています。)。
 12行目でrowで指定した行を取り出します。
 
 

【f_name.txt】

■エクセルファイルを入れたフォルダを記載してください
↓↓↓↓↓↓↓↓統合したいエクセルが入ったフォルダ↓↓↓↓↓↓↓↓
data
↑↑↑↑↑↑↑↑統合したいファイル↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
■エクセルファイルを保存したいフォルダを記載してください
↓↓↓↓↓↓↓↓統合後の名前↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
integrated.xlsx
↑↑↑↑↑↑↑↑統合後の名前↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


※注:3行目にフォルダの名前入れてください
※注:7行目にフォルダの名前入れてください

あとがき

 テキストに保存した設定データを読み込むために関数化をしました。
 pythonのプログラム本体を変更しなくてもプログラムの設定を変更できるのでpythonに慣れない人にプログラムを配布したりexe化するときに使えると思います。