-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
38 lines (30 loc) · 1.74 KB
/
utils.py
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
33
34
35
36
37
38
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog
from PyQt5.QtGui import QIcon
def getFileNameToOpen(parent):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getOpenFileName(parent,"QFileDialog.getOpenFileName()", "","CSV Files (*.csv)", options=options)
return fileName
def read_data(file_name, headers):
"""Из указанного файла прочитать данные с указанными заголовками"""
res = {} # инициализируем словарь
# открываем файл на чтение
with open(file=file_name, mode='r') as f:
# читаем каждую строку в файле
for line in f:
# если строка пустая
if line.strip() == "":
continue # переходим на след итерацию
# ищем позицию символа ":" в строке
semi_index = line.index(':')
# получаем в заголовок строки
# (срез массива до индекса символа ":")
curr_header = line[:semi_index]
# если заголовок один из тех, что нам нужен
if curr_header in headers:
# читаем данные из него в массив
# res[curr_header] = list(map( lambda x: float(x.replace(',', '').strip()),
# line[semi_index+1:].split(',')))
res[curr_header] = line[semi_index+1:].split(',')
return res # возвращаем словарь