форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
56 строки
2.4 KiB
Python
56 строки
2.4 KiB
Python
import os
|
|
import pickle
|
|
from M1 import func1, func2
|
|
def process_data():
|
|
while True:
|
|
filename = input("Введите имя файла с выборкой: ")
|
|
if os.path.exists(filename):
|
|
try:
|
|
with open(filename, 'r') as file:
|
|
data_str = file.read()
|
|
data_list = []
|
|
for item in data_str.replace(',', ' ').split():
|
|
try:
|
|
data_list.append(float(item))
|
|
if len(data_list) == 0:
|
|
print("Файл не содержит числовых данных. Попробуйте другой файл.")
|
|
continue
|
|
break
|
|
else:
|
|
print()
|
|
variation_series, params = func1(data_list)
|
|
while True:
|
|
try:
|
|
nint_input = input("\nВведите число интервалов для гистограммы (1 < NINT < 12): ")
|
|
nint = int(nint_input)
|
|
if 1 < nint < 12:
|
|
break
|
|
else:
|
|
print("Число интервалов должно быть больше 1 и меньше 12!")
|
|
print("\nСтроится гистограмма...")
|
|
histogram_result = func2(data_list, nint)
|
|
while True:
|
|
output_filename = input("\nВведите имя бинарного файла для сохранения результатов: ")
|
|
if not output_filename:
|
|
print("Имя файла не может быть пустым!")
|
|
continue
|
|
if not output_filename.endswith('.dat'):
|
|
output_filename += '.dat'
|
|
if os.path.exists(output_filename):
|
|
overwrite = input(f"Файл '{output_filename}' уже существует. Перезаписать? (да/нет): ")
|
|
if overwrite.lower() not in ['да', 'yes', 'y', 'д']:
|
|
continue
|
|
|
|
try:
|
|
results = {
|
|
'variation_series': variation_series,
|
|
'statistical_params': params,
|
|
'histogram': histogram_result,
|
|
'original_data': data_list,
|
|
'nint': nint
|
|
}
|
|
with open(output_filename, 'wb') as f:
|
|
pickle.dump(results, f)
|
|
break
|
|
return variation_series, params, histogram_result, data_list, nint, filename
|