Python

Помогите с задачей на питон

Напишите программу, которая будет удалять все комментарии из исходного файла с кодом на языке Python.
Пройдите по всем строкам в файле для поиска символа '#'. Обнаружив его, программа должна удалить все содержимое, начиная с этого символа и до конца строки. Гарантируется, что знак решетки не встречается в середине строки (то есть после какого-то текста, отступы до символа присутствовать могут). Сами строки удалять не нужно, количество строк в выводе должно совпадать с количеством строк в файле.
Выведите новое содержимое на экран. Имя файла подается на вход и заранее не известно. Если указанного файла не существует, необходимо вывести соответствующее сообщение об ошибке FileNotFoundError: "Файл не найден". Если происходит другая ошибка, вывести сообщение об ошибке Exception: "Неизвестная ошибка".
Работающий вариант удаления комментариев:
 try:
filename = input()
with open(filename, 'r') as f:
print('\n'.join(s.rstrip() if p < 0 else s[:p].rstrip()
for s in f for p in [s.find('#')]))
except FileNotFoundError as e:
print('FileNotFoundError: "Файл не найден"')
except Exception as e:
print('Неизвестная ошибка')
Фёдор Крат
Фёдор Крат
87 571
Лучший ответ
Aleksandr Nelipovich первые тесты прошел, на 4 выдал ошибку
Line 1 differs: out:
>FileNotFoundError: "Файл не найден"<
corr:
>Файл не найден<
Вот программа для удаления всех комментариев из исходного файла Python:

```питон
пытаться:
file_name = input("Введите имя файла: ")
с open(file_name, 'r') как f:
строки = f.readlines()
для i в диапазоне (len (lines)):
если '#' в строках [i]:
строки[i] = строки[i][:lines[i].index('#')] + '\n'
для строки в строке:
печать (строка. полоса ())
кроме FileNotFoundError:
печатать("Файл не найден")
кроме:
печатать("Неизвестная ошибка")
```

Объяснение:

1. Программа просит пользователя ввести имя обрабатываемого файла.
2. Оператор with используется для открытия файла в режиме только для чтения.
3. Метод readlines() используется для чтения всех строк из файла и сохранения их в списке.
4. Цикл используется для перебора всех строк в файле.
5. Оператор if проверяет наличие символа # в текущей строке.
6. Если присутствует '#', удаляется содержимое строки, начинающейся с '#' до конца.
7. Наконец, измененные строки печатаются на экране.
8. Программа обрабатывает два типа исключений: FileNotFoundError и неизвестные ошибки. Если файл не найден, программа выводит сообщение об ошибке «Файл не найден». При возникновении любой другой ошибки программа выводит сообщение «Неизвестная ошибка».
Фёдор Крат Ты, наверное, когда по улице ходишь, тоже объясняешь: "вот я делаю шаг левой ногой, а теперь - правой..."
Илья Коновальчук сo strip() в 9 строке ошибка:
out:
>'Москва': 12678079,<
corr:
> 'Москва': 12678079,<