Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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