форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
47 строки
1.9 KiB
Python
47 строки
1.9 KiB
Python
# module1.py - Модуль для чтения числового списка из файла
|
|
|
|
def read_numbers_from_file(filename):
|
|
"""
|
|
Считывает числовой список из текстового файла.
|
|
|
|
Аргументы:
|
|
filename (str): имя файла для чтения
|
|
|
|
Возвращает:
|
|
list: список чисел (float)
|
|
"""
|
|
numbers = []
|
|
|
|
try:
|
|
with open(filename, 'r', encoding='utf-8') as file:
|
|
for line in file:
|
|
# Разделяем строку на элементы по пробелам
|
|
elements = line.strip().split()
|
|
|
|
# Преобразуем каждый элемент в число и добавляем в список
|
|
for element in elements:
|
|
try:
|
|
number = float(element)
|
|
numbers.append(number)
|
|
except ValueError:
|
|
print(f"Внимание: элемент '{element}' в файле '{filename}' не является числом и будет пропущен")
|
|
|
|
except FileNotFoundError:
|
|
print(f"Ошибка: файл '{filename}' не найден")
|
|
return []
|
|
except IOError:
|
|
print(f"Ошибка ввода-вывода при чтении файла '{filename}'")
|
|
return []
|
|
|
|
print(f"Прочитано {len(numbers)} чисел из файла '{filename}'")
|
|
return numbers
|
|
|
|
|
|
# Тестирование модуля (если запускается напрямую)
|
|
if __name__ == "__main__":
|
|
# Тестовая проверка
|
|
test_filename = input("Введите имя файла для теста: ")
|
|
result = read_numbers_from_file(test_filename)
|
|
print(f"Результат: {result}")
|
|
print(f"Количество элементов: {len(result)}")
|