Revize 22e17e6c
Přidáno uživatelem Martin Forejt před téměř 4 roky(ů)
aswi2021vochomurka/service/file_manager.py | ||
---|---|---|
1 |
import os |
|
1 | 2 |
import time |
2 | 3 |
|
3 | 4 |
from aswi2021vochomurka.model.Message import Message |
4 | 5 |
from typing import TextIO |
5 | 6 |
|
7 |
trans = str.maketrans({ |
|
8 |
"/": "_", |
|
9 |
"\\": "_", |
|
10 |
":": "_", |
|
11 |
"\"": "_", |
|
12 |
"$": "_", |
|
13 |
"*": "_", |
|
14 |
".": "_"}) |
|
15 |
|
|
16 |
|
|
17 |
def create_filename(message: Message): |
|
18 |
name = "data/" + message.topic.translate(trans) + "/" + message.date + "_" + message.time + ".csv" |
|
19 |
return name |
|
20 |
|
|
6 | 21 |
|
7 | 22 |
class FileManager: |
8 | 23 |
topic: str |
... | ... | |
11 | 26 |
|
12 | 27 |
def __init__(self, topic: str, message: Message): |
13 | 28 |
self.topic = topic |
29 |
|
|
14 | 30 |
try: |
15 |
self.file = open(message.time + ".csv", "w+") |
|
31 |
filename = create_filename(message) |
|
32 |
os.makedirs(os.path.dirname(filename), exist_ok=True) |
|
33 |
self.file = open(filename, "w+") |
|
16 | 34 |
except Exception as error: |
17 | 35 |
print(error) |
18 |
self.file.write("init file\n")
|
|
19 |
self.lastUpdate = time.time()
|
|
36 |
raise error
|
|
37 |
self.write(message)
|
|
20 | 38 |
|
21 | 39 |
def write(self, message: Message): |
22 |
self.file.write("test append\n")
|
|
40 |
self.file.write(message.date + ";" + message.time + ";" + str(message.index) + ";" + str(message.value))
|
|
23 | 41 |
self.lastUpdate = time.time() |
24 | 42 |
|
25 | 43 |
def close(self): |
Také k dispozici: Unified diff
Re #8731 - format file name and content