【効率化】【プログラム】複数のテキストファイルを一つのCSVファイルにまとめる Combine multiple .txt into one .csv

概要

  • 誰に向けて

    • データ整理を効率化したいと考えている人
    • 複数のテキストファイルのコピペ作業が辛い人
    • Google Colaboratoryの設定が完了している人

  • いつ

    • 複数のテキストファイルを一つのCSVファイルにまとめるとき

  • アクション

    • 「~する」を一言で
    • 5秒で動ける内容
    • Google Colaboratoryに以下のプログラムをコピペする
    • プログラム
      1. # 必要なモジュールをインポート
      2. import pandas as pd,glob,os,time,datetime,math
      3. import numpy as np
      4. import matplotlib.pyplot as plt
      5. import matplotlib.dates as mdates
      6. import re
      7.  
      8. # Googleドライブからファイルを取得
      9. from google.colab import drive
      10.  
      11. drive.mount('/content/drive')
      1. # 必要なモジュールをインポート
      2. # # フォルダの確認
      3. os.getcwd()
      4.  
      5. folder_name = input() #フォルダ名
      6.  
      7. # # フォルダの移動
      8.  
      9. os.chdir("/content/drive/My Drive/"+folder_name)
      10. # os.chdir("/content")
      11.  
      12. # # os.path.dirname("test.txt")
      13.  
      14. # # フォルダ名から実験番号の取得
      15. exp_num=(os.getcwd()).split("/")[-1]
      16. print(exp_num)
      17. # テキストリストの取得
      18. data_list = glob.glob('*.txt')
      19. print(data_list)
      20.  
      1. os.getcwd()
      2. # ある秒数だけにする
      3. limit = input()
      4. data_list_limit = [name for name in data_list if re.compile(limit).search(name)]
      5. print(sorted(data_list_limit))
      1. # 波長のみデータの読み込み(これが元となる)
      2. data = pd.read_csv("/content/drive/My Drive/hacho_all.csv")
      3. # hacho_all 188.433-1030.431 skiprows=14 skipfooter=0
      4. # hacho400-750 399.404-750.2 skiprows=480 skipfooter=744
      5. # hacho390-750 390.134-750.2 skiprows=480-21 skipfooter=744
      6. # hacho300-750 300.267-750.2 skiprows=480-21-210 skipfooter=744
      7. # hacho375-750 375.077-750.2 skiprows=480-21-34 skipfooter=744
      8.  
      9. data = data.drop("Unnamed: 0", axis=1)
      10. for i,name in enumerate(data_list_limit):
      11. # ファイル名のファイバー測定日時を文字列として取り込み、インデックスにする
      12. time = ((name.split("_"))[-1].split("."))[0]
      13.  
      14. # データの取得
      15. flu_data = pd.read_table(name,sep="\t",header=None,skiprows=13,skipfooter=0,names=("\lambda","int"))
      16. # # 情報データの取得
      17. # info_data = pd.read_table(name,sep=":",header=None,skiprows=0,skipfooter=2050,names=("A","B","C","D"))
      18. # dataB5 = info_data["B"][5].split("E")
      19. # integration_time = float(dataB5[0])*10**int(dataB5[1])
      20. # print(integration_time)
      21. # データの組み込み
      22. # data[time] = (flu_data.drop("\lambda", axis=1))/integration_time
      23. data[time] = (flu_data.drop("\lambda", axis=1))
      24.  
      25. # # データの並び替え
      26. # data.sort_index(axis=1, inplace=True)
      27.  
      28. # データの保存
      29. data.to_csv(exp_num+"_"+ limit + "_test.csv")
      30. # data



  • 具体的内容






  • まとめ



コメント