Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.08.2023
Сообщений: 36

Задача на цензурирование файла

20.08.2023, 02:35. Показов 1083. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу, принимающую на вход имя файла и заменяющего все вхождения слова ''haha'' на ''[censored]''.

Выведите на экран отцензурированную версию исходного файла. В случае отсутствия файла нужно вывести соответствующее сообщение об ошибке "Файл не найден".
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.08.2023, 02:35
Ответы с готовыми решениями:

Задача файла
Даны имена двух файлов вещественных чисел. Известно, что первый из них существует и является непустым, а второй в текущем каталоге...

Задача на подключение файла
Здравствуйте! Нужна помощь в виде объяснения как сделать или решение... Была задача - подключался txt файл с неким чатом, где логины...

задача на файла(текстовые)
дан числовой текстовый файл. Создать новый текстовый файл, каждая строка которого в первой половине содержит больше отрицательных чисел,...

28
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
20.08.2023, 07:23
Python
1
2
3
4
5
6
7
filename = input('filename->')
try:
    s = open(filename).read().replace('haha', '[censored]')
    open(filename, 'w').write(s)
    print(open(filename).read())
except:
    print('Файл не найден')
2
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.08.2023, 16:12
idealist
1) файлы не закрываются.
2) зачем открывать файл в третий раз?
3) ловятся ВСЕ исключения, а не только нужное

Добавлено через 7 минут
Python
1
2
3
4
5
6
7
with open(filename, 'r+') as f:
    text = f.read()
    # …
    print(text)
    f.seek(0)
    f.write(text)
# except FileNotFoundError:
3
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
22.08.2023, 16:18
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
1) файлы не закрываются.
А как вы интересно будете файл закрывать, если у вас нет его имени? А если серьезно, при безымянном открытии файл закрывается по завершении выполнения этого выражения.
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
2) зачем открывать файл в третий раз?
Чтобы продемонстрировать, что в него внесены изменения.
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
3) ловятся ВСЕ исключения, а не только нужное
Ну, это для упрощения, а так-то согласен, надо было указать исключение.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.08.2023, 16:25
Цитата Сообщение от idealist Посмотреть сообщение
А как вы интересно будете файл закрывать
изи:

Python
1
2
3
f = open(filename, 'r+')
text = f.read()
f.close()
Добавлено через 13 секунд
Цитата Сообщение от idealist Посмотреть сообщение
ткрытии файл закрывается по завершении выполнения этого выражения.
нет
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
22.08.2023, 16:28
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
нет
Таки да!
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.08.2023, 16:48
Ладно, убедил.

Python
1
2
3
4
print('>>> 1')
text = open('aaa.asm').read()
print('>>> 3')
_ = input()
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ strace -e trace=open,openat,close python3 2.py
openat(AT_FDCWD, "/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libexpat.so.1", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
...
openat(AT_FDCWD, "/usr/lib/python3.11/dist-packages", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
close(3)                                = 0
openat(AT_FDCWD, "/home/fox/2.py", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
openat(AT_FDCWD, "/home/fox/2.py", O_RDONLY) = 3
close(3)                                = 0
>>> 1
openat(AT_FDCWD, "aaa.asm", O_RDONLY|O_CLOEXEC) = 3
close(3)                                = 0
>>> 3
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
22.08.2023, 22:53
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Python
1
2
3
4
5
6
with open(filename, 'r+') as f:
    text = f.read()
    # …
    print(text)
    f.seek(0)
    f.write(text)
Ваш не заменяет слова ''haha'' на ''[censored]''.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.08.2023, 08:48
isaak, ты прикалываешься?
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
24.08.2023, 12:47
Цитата Сообщение от iSmokeJC Посмотреть сообщение
ты прикалываешься?
Ну и кто из нас двоих тут прикалывается?
Миниатюры
Задача на цензурирование файла  
Вложения
Тип файла: txt input.txt (38 байт, 0 просмотров)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.08.2023, 12:52
isaak, ты вроде бы давно уже с питоном знаком, вроде бы и адекватный форумчанин, но иногда как ляпнешь...
Цитата Сообщение от isaak Посмотреть сообщение
Ну и кто из нас двоих тут прикалывается?
Неужели ты в этих пяти строчках не видишь, что с исходным текстом в принципе ничего не делается?
Лис споказал только работу с файлом, а собсно обработку текста переписывать не стал, а поставил комменарий, подразумевающий вышеприведенный код.
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
24.08.2023, 13:08
Знаешь, если мы на "ты" перешли, нет не увидел, тогда полностью рабочий код будет выглядеть вот так:
Python
1
2
3
4
5
6
with open('input.txt', 'r+') as f:
    text = f.read()
    text = open('input.txt').read().replace('haha', '[censored]')
    print(text)
    f.seek(0)
    f.write(text)
Миниатюры
Задача на цензурирование файла  
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2023, 13:10
Цитата Сообщение от isaak Посмотреть сообщение
тогда полностью рабочий код будет выглядеть вот так:
нет

Добавлено через 43 секунды
Вот ты во второй строке положил в переменную значение и сразу же его перезатёр в третьей сторке…

Добавлено через 6 секунд
*строке
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
24.08.2023, 13:18
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Вот ты во второй строке положил в переменную значение и сразу же его перезатёр в третьей сторке…
Программа же выполняет свою функцию_ производит замену ''haha'' на ''[censored]''.

Добавлено через 4 минуты
Да понял свою ошибку, правильно будет вот так:
Python
1
2
3
4
5
with open('input.txt', 'r+') as f:
    text = open('input.txt').read().replace('haha', '[censored]')
    print(text)
    f.seek(0)
    f.write(text)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2023, 13:19
Только половина строк дублирует функционал

Добавлено через 15 секунд
Цитата Сообщение от isaak Посмотреть сообщение
Да понял свою ошибку, правильно будет вот так:
всё ещё нет

Добавлено через 23 секунды
Но уже ближе
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
24.08.2023, 13:24
Программа же работает, выполняет свою функцию. Что еще надо?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2023, 13:24
Ты файл открываешь дважды
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
24.08.2023, 13:49
Ну вот так:
Python
1
2
3
4
5
6
with open('input.txt', 'r+') as f:
    text = open('input.txt').read().replace('haha', '[censored]')
    print(text)
    f.seek(0)
    f.write(text)
    f.close()
Только осталось еще добавить try и except. Пока не знаю как это сделать.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2023, 13:57
Но файл всё равно открывается дважды (два вызова функции open)
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
24.08.2023, 14:00
Цитата Сообщение от isaak Посмотреть сообщение
Ну вот так

Цитата Сообщение от isaak Посмотреть сообщение
with open('input.txt', 'r+') as f:
    text = open('input.txt').read().replace('haha', '[censored]')
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Ты файл открываешь дважды
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2023, 14:00
Помогаю со студенческими работами здесь

Задача на обработку файла
На диске имеется файл данных STUDENT.DAT. Упорядочить список студентов в алфавитном порядке по именам и распечатать его

Задача на обработку файла
Создайте файл, заполненный любыми строками, а дальше по заданию: -Дан текстовый файл. Определить среднее количество слов в строке.-

Задача на обработку файла
Записать в файл n натуральных чисел. получить в другом файле все компоненты файла f, кроме тех, которые кратны k. Вывести полученный файл...

Задача с использованием файла
Прочитать файл chisla.txt и записать в файл otvet.txt те числа, у которых сумма цифр больше 30. Затем, после горизонтальной черты, записать...

Задача на создание файла
У меня есть задача с файлами на Паскале нужно перевести на си . program s55; uses crt; var x, y, k: real; f:file of real; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru