0 / 0 / 0
Регистрация: 17.08.2023
Сообщений: 36

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

20.08.2023, 02:35. Показов 1102. Ответов 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,329
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,329
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,329
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,329
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,329
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,329
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru