1
1
# Copyright (c) 2021. 楊鵬. All Rights Reserved.
2
2
3
+ from datetime import datetime
4
+
3
5
# 処理ファイル名
4
6
FROM_FILE = "testADB_touchMesocket1_log_2020.05.07.txt"
5
7
# 抽出したいデータの設備名
20
22
VALUE_TO = 79
21
23
# 被験者ID
22
24
USER_COLUMN_NAME = '被験者番号'
23
- USER_ID = '1'
25
+ USER_ID = None # 変更なら文字列で
24
26
# ミリ秒値の位置
25
27
TIMESTAMP_FROM = 1
26
28
TIMESTAMP_TO = 16
27
29
# 出力列項目
28
30
COLUMNS = [
29
31
{
30
32
'name' : USER_COLUMN_NAME , # 固定
31
- # todo 出力ファイルが有る場合、既存ユーザーIDを取得して、こちら+1で設定(既存ファイルと連動)
32
- 'value' : USER_ID , # 固定
33
33
},
34
34
{
35
35
'name' : 'ミリ秒(n)' ,
63
63
# }
64
64
]
65
65
# 出力ファイル名
66
- TO_FILE = 'result.txt '
66
+ TO_FILE = 'result.csv '
67
67
68
68
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
75
75
76
76
77
77
# 処理ファイルから補充済データ、項目名を取得
@@ -85,7 +85,7 @@ def create_data_from_file():
85
85
data_json ['TIME' ].append (str .strip (row [TIMESTAMP_FROM :TIMESTAMP_TO ]))
86
86
key = str .strip (row [KEY_FROM :KEY_TO ])
87
87
# 生データに項目名及び順番を取得
88
- if not key in keys :
88
+ if not ( key in keys ) :
89
89
keys .append (key )
90
90
91
91
# 省略データがある場合
@@ -124,9 +124,9 @@ def data_convert(data_json, keys):
124
124
for i in range (event_count_all ):
125
125
event_count_in_row += 1
126
126
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 :
130
130
row_data .append (data_json [col ['bind_name' ]][i ])
131
131
# イベントがUPの場合
132
132
if data_json [EVENT_NAME ][i ].find (EVENT_VALUE_TO ) != - 1 :
@@ -152,14 +152,16 @@ def data_convert(data_json, keys):
152
152
153
153
154
154
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 :
156
159
f .writelines (data )
157
160
158
161
159
162
if __name__ == '__main__' :
160
- # todo 被験者番号を更新
161
- # USER_ID = update_user_id()
162
-
163
+ # 被験者番号を更新
164
+ USER_ID = update_user_id (USER_ID )
163
165
# 処理ファイルを読み込み
164
166
[data_json , keys ] = create_data_from_file ()
165
167
# データ処理、転置
0 commit comments