#1データずつ改行されたCSVデータを所定順序のデータセットエレメントに並べ直し、データセットをCSVで保存する
#ライブラリ
import csv
#羅列データCSVを読み込む
#デリミタ=コンマ
#情報区切=指定文字列
#データ内の項目順序=不定、重複あり&重複時は一番新しいものを採用
#羅列データを読み込むCSVのパス
path_data_input = "C:/Users/shienkikou11/Desktop/VSCode/convert_CSV/test_input.csv"
#データセットを書出すCSVのパス
path_data_output = "C:/Users/shienkikou11/Desktop/VSCode/convert_CSV/test_output.csv"
#データセット内のエレメントの識別文字列
neq="NEQ$"
loc="LOC$"
dlm="DLM$"
usr="USR$"
dtm="DTM$"
#羅列データCSVからデータを読む
#エンコードをutf_8でBOM付きにするとcp932デコードエラーが出ない。
with open(path_data_input, encoding="utf_8_sig") as f:
#print(f.read())
lists_element = []
element_dataset = []
reader = csv.reader(f)
#データセット内のエレメントの初期化
neq_element=""
loc_element=""
dlm_element="" #Not in Use
usr_element="USR$0050"
dtm_element="2023/09/01 12:00"
for row in reader:
element = str(row[0])
#print(element)
if neq in element:
neq_element=element
elif loc in element:
loc_element=element
elif usr in element:
usr_element=element
elif dtm in element:
dtm_element=element
elif dlm in element:
if len(neq_element)==0 or len(loc_element)==0 :
print("Dataset ERROR by missing NEQ$ and/or LOC$ ")
else:
element_dataset=[neq_element,loc_element,usr_element,dtm_element]
#print(element_dataset)
lists_element.append(element_dataset)
#データセット内のエレメントのクリア
element_dataset=""
neq_element=""
loc_element=""
#print(lists_element)
with open(path_data_output, 'w',newline="") as fo:
writer = csv.writer(fo)
writer.writerows(lists_element)
with open(path_data_output, encoding="utf_8_sig") as fo2:
reader = csv.reader(fo2)
for row in reader:
print(row)
print("process end")