Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ecd40e4

Browse files
コード改善
1 parent 1ac4721 commit ecd40e4

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

txtToCsv.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Copyright (c) 2021. 楊鵬. All Rights Reserved.
22

3+
from datetime import datetime
4+
35
# 処理ファイル名
46
FROM_FILE = "testADB_touchMesocket1_log_2020.05.07.txt"
57
# 抽出したいデータの設備名
@@ -20,16 +22,14 @@
2022
VALUE_TO = 79
2123
# 被験者ID
2224
USER_COLUMN_NAME = '被験者番号'
23-
USER_ID = '1'
25+
USER_ID = None # 変更なら文字列で
2426
# ミリ秒値の位置
2527
TIMESTAMP_FROM = 1
2628
TIMESTAMP_TO = 16
2729
# 出力列項目
2830
COLUMNS = [
2931
{
3032
'name': USER_COLUMN_NAME, # 固定
31-
# todo 出力ファイルが有る場合、既存ユーザーIDを取得して、こちら+1で設定(既存ファイルと連動)
32-
'value': USER_ID, # 固定
3333
},
3434
{
3535
'name': 'ミリ秒(n)',
@@ -63,15 +63,15 @@
6363
# }
6464
]
6565
# 出力ファイル名
66-
TO_FILE = 'result.txt'
66+
TO_FILE = 'result.csv'
6767

6868

69-
def update_user_id():
70-
a = 0
71-
# todo 出力ファイル名でファイルを検索
72-
# ファイルがない and USERIDはNONE => USERID = 1
73-
# USERID != NONE => 設定済USERIDで
74-
# ファイルが有る => USERID += 1
69+
def update_user_id(user_id):
70+
if user_id == None:
71+
user_id = '1'
72+
elif type(user_id) is int:
73+
user_id = str(user_id)
74+
return user_id
7575

7676

7777
# 処理ファイルから補充済データ、項目名を取得
@@ -85,7 +85,7 @@ def create_data_from_file():
8585
data_json['TIME'].append(str.strip(row[TIMESTAMP_FROM:TIMESTAMP_TO]))
8686
key = str.strip(row[KEY_FROM:KEY_TO])
8787
# 生データに項目名及び順番を取得
88-
if not key in keys:
88+
if not (key in keys):
8989
keys.append(key)
9090

9191
# 省略データがある場合
@@ -124,9 +124,9 @@ def data_convert(data_json, keys):
124124
for i in range(event_count_all):
125125
event_count_in_row += 1
126126
for col in COLUMNS:
127-
if col['name'] == USER_COLUMN_NAME:
128-
row_data.append(col['value'])
129-
else:
127+
if col['name'] == USER_COLUMN_NAME and data_json[EVENT_NAME][i].find(EVENT_VALUE_TO) != -1:
128+
row_data.insert(0, USER_ID)
129+
elif col['name'] != USER_COLUMN_NAME:
130130
row_data.append(data_json[col['bind_name']][i])
131131
# イベントがUPの場合
132132
if data_json[EVENT_NAME][i].find(EVENT_VALUE_TO) != -1:
@@ -152,14 +152,16 @@ def data_convert(data_json, keys):
152152

153153

154154
def create_file_from_data(data):
155-
with open(TO_FILE, 'a', encoding='utf-8') as f:
155+
now = datetime.now()
156+
[name, extension] = TO_FILE.split('.')
157+
file_name = name + now.strftime('%Y%m%d%H%M%S%f') + '.' + extension
158+
with open(file_name, 'w', encoding='utf-8') as f:
156159
f.writelines(data)
157160

158161

159162
if __name__ == '__main__':
160-
# todo 被験者番号を更新
161-
# USER_ID = update_user_id()
162-
163+
# 被験者番号を更新
164+
USER_ID = update_user_id(USER_ID)
163165
# 処理ファイルを読み込み
164166
[data_json, keys] = create_data_from_file()
165167
# データ処理、転置

0 commit comments

Comments
 (0)