-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMyFuncs.py
72 lines (67 loc) · 3.7 KB
/
MyFuncs.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# СТАРАЯ (к тому же - велосипед) кастомная функция для чтения\записи текстовых файлов
def RW_File(mode, filename, data=None, read_dict=0):
# Определяем переменную с разделителем:
sep = ':*:'
# Открываем файл:
file = open(filename, mode)
# Читаем полученные данные из файла:
if mode == 'r':
# Если требуется конвертирования данных в словарь с разделителем "sep":
if read_dict == 1:
data = {}
# Читаем файл построчно и сохраняем строки в список:
dict_list = [row.strip() for row in file]
# Преобразуем список в словарь используя разделитель:
for str_with_sep in dict_list:
# Функция split возвращает 2 значения (в данном случае) из одной строки:
key, value = str_with_sep.split(sep)
# print(key,value)
# Записываем данные в словарь:
data[key] = value
else:
# Просто получаем строки в список:
data = [row.strip() for row in file]
# Закрываем файл:
file.close()
# Возвращаем полученные данные:
return data
# Записываем полученные данные в файл (с перезаписью):
elif mode == 'w':
# Определяем тип данных и записываем их в файл:
if type(data) == list:
# Список:
for i in data:
file.write(str(i) + '\n')
elif type(data) == str or type(data) == int:
# Строка:
file.write(str(data) + '\n')
elif type(data) == dict:
# В случае, если тип данных - словарь, записываем ключ + значение через разделитель:
for key in data:
file.write(str(key) + sep + str(data[key]) + '\n')
else:
# Если что-то не так с типом данных, закрываем файл и вызываем исключение:
file.close()
print("ОШИБКА типа данных (при записи в файл)!")
raise ValueError
# Записываем полученные данные в файл (без перезаписи, методом добавления):
elif mode == 'a':
# Определяем тип данных и записываем их в файл:
if type(data) == list:
# Список:
for i in data:
file.write(str(i) + '\n')
elif type(data) == str or type(data) == int:
# Строка:
file.write(str(data) + '\n')
elif type(data) == dict:
# В случае, если тип данных - словарь, записываем ключ + значение через разделитель:
for key in data:
file.write(str(key) + sep + str(data[key]) + '\n')
else:
# Если что-то не так с типом данных, закрываем файл и вызываем исключение:
file.close()
print("ОШИБКА типа данных (при записи в файл)!")
raise ValueError
# Закрываем файл:
file.close()