Код:
def remove_comments(source_file_path, destination_file_path):
try:
# Открываем исходный файл для чтения
with open(source_file_path, 'r', encoding='utf-8') as source_file:
lines = source_file.readlines()
# Обрабатываем каждую строку, удаляя комментарии
processed_lines = []
for line in lines:
comment_start = line.find('#')
if comment_start != -1:
line = line[:comment_start]
processed_lines.append(line)
# Записываем обработанные строки в целевой файл
with open(destination_file_path, 'w', encoding='utf-8') as destination_file:
destination_file.writelines(processed_lines)
print(f"Комментарии успешно удалены из файла {source_file_path} и сохранены в файл {destination_file_path}.")
except FileNotFoundError:
print(f"Ошибка: Файл {source_file_path} не найден.")
except IOError as e:
print(f"Произошла ошибка ввода-вывода: {e}")
except Exception as e:
print(f"Произошла непредвиденная ошибка: {e}")
def main():
try:
source_file_path = input("Введите имя исходного файла с кодом на Python: ")
destination_file_path = input("Введите имя файла для сохранения без комментариев: ")
remove_comments(source_file_path, destination_file_path)
except KeyboardInterrupt:
print("\nПрограмма была прервана пользователем.")
except Exception as e:
print(f"Произошла непредвиденная ошибка в главной программе: {e}")
if __name__ == "__main__":
main()
В данном упражнении вам предстоит написать программу, которая будет удалять все комментарии из исходного файла с кодом на языке Python. Пройдите по всем строкам в файле на предмет поиска символа #. Обнаружив его, программа должна удалить все содержимое, начиная с этого символа и до конца строки. Для простоты не будем рассматривать ситуации, когда знак решетки встречается в середине строки. Сохраните новое содержимое в созданном файле. Имена файла источника и файла назначения должны быть запрошены у пользователя. Удостоверьтесь в том, что программа корректно обрабатывает возможные ошибки при работе с обоими файлами.