feat: 末尾行はcsvライブラリを使って読み込む。単純にスプリットした場合にカラム内のカンマを判別できないため
This commit is contained in:
parent
11aee0f43a
commit
72e0a18431
@ -174,11 +174,18 @@ def check(bucket_name, target_data_source, target_file_name, settings_key, log_i
|
||||
# ファイルの末尾行を取得し、ファイル項目数と比較する
|
||||
last_line_work_data_bytes = next(reverse_readline_stream(
|
||||
work_data_bytes, LINE_FEED_CODE[settings_list[SETTINGS_ITEM["lineFeedCode"]]]))
|
||||
last_line_count = len(
|
||||
last_line_work_data_bytes.decode(encoding).split(delimiter))
|
||||
if last_line_count != settings_list[SETTINGS_ITEM["csvNumItems"]]:
|
||||
# 区切り文字(例えばカンマ)を文字とデリミタで区別できるように、csvリーダーで読む
|
||||
last_line_separated_data = [
|
||||
row for row in csv.reader(
|
||||
io.TextIOWrapper(io.BytesIO(last_line_work_data_bytes)),
|
||||
quotechar=convert_quotechar(
|
||||
settings_list[SETTINGS_ITEM["quotechar"]]),
|
||||
delimiter=delimiter)
|
||||
]
|
||||
last_line_count = len(last_line_separated_data[0])
|
||||
if last_line_count != int(settings_list[SETTINGS_ITEM["csvNumItems"]]):
|
||||
raise CheckError(
|
||||
f'E-CHK-03 - 投入データ末尾の項目数が一致しません 個別設定ファイル項目数:{settings_list[SETTINGS_ITEM["csvNumItems"]]} 投入データ項目数:{last_line_work_data_bytes}')
|
||||
f'E-CHK-03 - 投入データ末尾の項目数が一致しません 個別設定ファイル項目数:{settings_list[SETTINGS_ITEM["csvNumItems"]]} 投入データ項目数:{last_line_count}')
|
||||
print(
|
||||
f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {INFO} I-CHK-09 - C-3 末尾行項目数チェック 正常終了')
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user