-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcsv_writer.py
More file actions
32 lines (28 loc) · 1.06 KB
/
Copy pathcsv_writer.py
File metadata and controls
32 lines (28 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import csv
from multiprocessing import Process
from config import Config
from ble_uuid import BLE_UUID
import os
class CSVWriter(Process):
def __init__(self, queue) -> None:
Process.__init__(self)
config = Config().get_settings()['csv']
self.queue = queue
self.fname = os.path.join(config['dir'], config['fname'])
if not os.path.exists(config['dir']):
os.makedirs(config['dir'])
with open(self.fname, 'w', newline='', encoding="utf-8") as f:
filters = Config().get_settings()['BLE_FILTERS']
devices = {
**filters['MAC'],
**{BLE_UUID(k):v for k, v in filters['UUID'].items()}
}
header = ["t"] + [devices[n] for n in devices.keys()]
csv_w = csv.writer(f)
csv_w.writerow(header)
def run(self):
while(True):
data = self.queue.get()
with open(self.fname, 'a', newline='', encoding="utf-8") as f:
csv_w = csv.writer(f)
csv_w.writerow(data)