Top.Mail.Ru
Ответы

Программирование Python, помогите с решением задачи

help me please!
В данном упражнении вам предстоит написать программу, которая будет удалять все комментарии из исходного файла с кодом на языке Python. Пройдите по всем строкам в файле на предмет поиска символа #. Обнаружив его, программа должна удалить все содержимое, начиная с этого символа и до конца строки. Для простоты не будем рассматривать ситуации, когда знак решетки встречается в середине строки. Сохраните новое содержимое в созданном файле. Имена файла источника и файла назначения должны быть запрошены у пользователя. Удостоверьтесь в том, что программа корректно обрабатывает возможные ошибки при работе с обоими файлами.

По дате
По рейтингу
Аватар пользователя
Мудрец
7мес

Код:

123456789101112131415161718192021222324252627282930313233343536373839404142
 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() 
 
Аватар пользователя
Мастер
7мес

def remove_comments():
try:
# Запрашиваем у пользователя имена файлов
source_filename = input("Введите имя исходного файла: ")
destination_filename = input("Введите имя файла для сохранения без комментариев: ")

# Открываем исходный файл для чтения и файл назначения для записи
with open(source_filename, 'r', encoding='utf-8') as source_file, open(destination_filename, 'w', encoding='utf-8') as dest_file:
# Чтение исходного файла построчно
for line in source_file:
# Ищем символ '#' и обрезаем строку до этого символа
line_without_comment = line.split('#')[0]
# Записываем строку без комментариев в файл назначения
dest_file.write(line_without_comment + '\n')

print(f"Комментарии удалены и результат сохранен в файл {destination_filename}")

except FileNotFoundError:
print("Ошибка: Исходный файл не найден!")
except PermissionError:
print("Ошибка: Нет прав для чтения/записи файлов!")
except Exception as e:
print(f"Произошла ошибка: {e}")

# Запускаем функцию
remove_comments()

Аватар пользователя
Профи
7мес

причем тут змейка?