2021年5月6日木曜日

大量のテキストデータをマージする

 Pythonで大量のテキストデータをマージする際のメモです.

大量のテキストデータをマージするPythonのコードを作成した際のメモです.
用途としては,Hi-netのダウンロードデータ(1分間)をマージすることを想定しています.

ダウンロードしたテキストデータは以下のような名前だとします(当然,これはこの例の場合なので,読み替えて下さい).

201412071000_Daimon_4b33
201412071000_Daimon_4b34
201412071000_Daimon_4b35

201412071059_Daimon_4b33
201412071059_Daimon_4b34
201412071059_Daimon_4b35

データの名前の末尾が"4b33","4b34","4b35"になっていますが,この末尾別にマージしたいとします.

コードは以下のようになります.

# Setting
new_file_UD = 'Daimon_UD.txt' # Set the file name!
new_file_NS = 'Daimon_NS.txt' # Set the file name!
new_file_EW = 'Daimon_EW.txt' # Set the file name!

# Import modules
import glob

# Data append function 
def data_append(file_path): 
    with open(combined_file, mode='a'encoding='UTF-8'as f:
        with open(file_path, mode='r'encoding = 'UTF-8'as fr:
            data = fr.read()
            f.write(data)

#U-D
# Create new file
combined_file = new_file_UD

# Execution 
for file in glob.glob('./Directory_name/*_4b33.txt'):
    data_append(file)

#N-S
# Create new file
combined_file = new_file_NS

# Execution 
for file in glob.glob('./Directory_name/*_4b34.txt'):
    data_append(file)

#E-W
# Create new file
combined_file = new_file_EW

# Execution 
for file in glob.glob('./Directory_name/*_4b35.txt'):
    data_append(file)

# Settiung では(マージして)作成するファイル名を設定します.ファイルを実行する際には,作成したいファイル名に設定します.この部分は必須ではなく,後述の "# Create new file "のところで設定しても良いのですが,プログラムの実行の際に書き換えたりする場所を限定したかったために,このような形式にしています.

# Import modules では,必要となるモジュール "glob" を読み込みます.

# Data append function では,以下の関数を定義しています.

  1. 書き込みを行いたいファイル(combined_file)を追記モード aで開く(f)
  2. マージしたいファイルのパスを読み込んで,そのファイルを読み込みモード rで開く(fr)
  3. 読み込んだファイル(fr)を data という変数に格納して,書き込みを行いたいファイル(f) に追記する( f.write(data) )

0 件のコメント :

コメントを投稿