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

Файл: вывести в другой файл:'выход.txt', все строки подходящие по критериям

04.12.2015, 15:01. Показов 2242. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть исходный файл vhod.txt
нужно написать программу которая по критериям выводит в другой файл:'выход.txt', все строки подходящие по критериям, допустим я выбрал сортировку по цене и написал 30 он должен выдать:
сыр 10 30
чай 142 30
лист 1300 30
носки 142 30
также может быть введен поиск сразу по двум критериям
Вложения
Тип файла: txt vhod.txt (683 байт, 3 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2015, 15:01
Ответы с готовыми решениями:

Дан текстовой файл source_file.txt и строка substring. Записать в файл search_file.txt все строки файла source_file.txt
Дан текстовой файл source_file.txt и строка substring. Записать в файл search_file.txt все строки файла source_file.txt, содержащие в...

Записать 200 случайных чисел в файл a.txt. В файл b.txt вывести четные, а в файл c.txt нечетные
Записать 200 случайных чисел в файл a.txt. В файл b.txt вывести четные, а в файл c.txt нечетные.

Все файлы из текстового файла in.txt вывести в обратном порядке в другой файл
Надо написать программу на си, которая должна все файлы из текстового файла in.txt вывести в обратном порядке в файл out.txt.

20
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 15:16
Тут прямо напрашиваются регулярные выражения, кмк
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 15:17  [ТС]
так поможешь?
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 15:21
Я не могу сейчас твой файл посмотреть. Там все записи в одинаковом формате "название кол-во цена"? По одной записи в строке?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.12.2015, 15:22
Цитата Сообщение от arctblake Посмотреть сообщение
Тут прямо напрашиваются регулярные выражения
Нее, регулярные выражения тут это overhead. Строковых методов тут заглаза хватит.
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 15:22  [ТС]
только там не по одному пробелу
наименование кол-во цена
капуста 13 43
сыр 10 30
ноутбук 4 30000
чай 142 30
диван 13 30000
наушники 10 9000
кошелек 142 3500
стакан 4 3500
телевизор 6 30000
ковер 6 3500
тетрадка 1300 10
пульт 60 600
колонки 10 9000
приставка 13 9000
инструменты 4 600
лист 1300 30
карандаш 142 43
принтер 60 9000
клавиша 60 10
куртка 13 3500
носки 142 30
джинсы 13 9000
футболка 60 3500
плеер 13 3500
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 15:44
Python
1
2
3
4
5
6
import re
 
rec = re.compile(r'^\s*(\w+)\s+(\d+)\s+(\d+)\s*$')
for match in rec.finditer(open(vhod.txt).read()):
    name, amount, price = match.groups()
    # тут проверка и запись в файл, если проверка пройдена
Добавлено через 4 минуты
Вроде так. Хотя да, наверное это тут лишнее. Можно было бы просто по одной строке читать, разбивать split'ом строку и проверять
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.12.2015, 15:44
arctblake, Всю твою регулярку можно заменить на один вызов split, который выполнится горадо быстрей + ни какие библиотеки импортить не надо.
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 15:45
alex925,
да я это понял ) просто тренируюсь ) регулярки - это класс
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 15:48  [ТС]
он говорит, что файла входа нету, а он есть, что это значит?
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 15:49
значит, надо правильно указать путь. Такое название катит только если файл в том же каталоге, что и запущенный сценарий
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 15:50  [ТС]
так он в одном каталоге
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 15:53
Я там кавычки забыл

Добавлено через 1 минуту
а вообще не делай так.
Python
1
2
3
for line in open('vhod.txt'):
    name, amount, price = line.split()
    ...
так в сто раз лучше )
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 17:01  [ТС]
а как в итоге то осуществлять поиск?
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 19:00
Лучший ответ Сообщение было отмечено artibmstu как решение

Решение

Ну типа такого
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
crits = input('Критерии (через пробел): ')
crits = dict.fromkeys(crits.split())
for c in crits:
    crits[c] = input('Значение для '+c+': ') if c == 'name' else int(input('Значение для '+c+': '))
 
f = open('output.txt', 'w')
for line in open('vhod.txt'):
    name, amount, price = line.split()
    correct = True
    for c in crits:
        if c == 'name' and crits[c] != name:
            break
        if c == 'amount' and crits[c] != amount:
            break
        if c == 'price' and crits[c] != price:
            break
    else:
        f.write(line + '\n')
Добавлено через 6 минут
correct = True - лишнее
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 19:01  [ТС]
а как и что вводить?
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 19:07
эмм
ну, например, сначала ввести 'amount price'
потом ввести значение для кол-ва и значение для цены.
просто запустите сценарий и всё сами увидите
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 19:09  [ТС]
в файле ничего не появляется
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
04.12.2015, 19:14
Да-да, ошибочка. В 4 строке всё ,что после if, удали

Добавлено через 51 секунду
И сам if тоже
0
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 16
04.12.2015, 19:48  [ТС]
оу, спасибо тебе огромнейшее

Добавлено через 33 минуты
слушай, не работает когда 2 критерия задаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2015, 19:48
Помогаю со студенческими работами здесь

Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в конце каждой строки
помогите как можно быстрей Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в конце каждой...

Файл содержит произвольные текстовые строки. Переписать в другой файл все непустые строки, имеющие наименьшую длину
Написать программу на c++ по перезаписи наименьших непустых строк из одного файла в другой с использованием fstream

Файл: Вывести на экран и в другой файл строки, размер которых больше среднего размера строки в файле.
Ребзи,хэлп с двумя прогами: Организовать текстовый файл, состоящий из N строк. Вывести на экран и в другой файл строки, размер которых...

Дан файл вещественных чисел a1.txt. Переписать в файл а2.txt все ненулевые элементы файла а1.txt.
Дан файл вещественных чисел a1.txt. Переписать в файл а2.txt все ненулевые элементы файла а1.txt.

Из одного .txt файла сохранить все УНИКАЛЬНЫЕ слова в другой .txt файл используя cmd
нужно используя файл например run.cmd как-то сделать следующее... (накрайняк используя PS) из файла IN.txt -- найти и сохранить...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru