Форум сайта python.su
0
я дико извиняюсь за, возможно, нубский вопрос , но он меня очень интересует а спросить больше не у кого и в гугле не нашел.
Подскажите как реализовать в питоне и\или pycharm такую штуку чтобы входные данные подставлялись в input ???
пример ( http://pythontutor.ru/visualizer/ )
1- заранее подготовленные входные данные ( то что будет вводиться в input в основном коде)
2- код самой программы
3- вывод результата
Заранее благодарен , с уважением пробник )
Офлайн
253
Очень просто реализовать. Не пользоваться input.
Для ленивых:
import yaml locals().update(yaml.load(open("b.yaml")))
b.yaml : a : xochu b : vce c : znat
python a.py <data.txt
a=input()
a="vce"
Офлайн
0
я не корректно пример привел , так будет правильнее.
То есть вариант со словарем- “ключ : значение” не подходит , второй вариант (если я правильно понял) под линукс заточен, а третье это вообще не то.
Но все равно огромное спасибо.
Проблема еще актуальна.
Офлайн
857
probnikВ винде это будет так
второй вариант (если я правильно понял) под линукс заточен
python script.py < file.txt
type file.txt | python script.py
Офлайн
253
probnikКто говорит что там обязательно ключ- значение точно также можно сделать список
вариант со словарем- “ключ : значение” не подходит
- hochu - vse - znat - 1 - 2 - 3
import yaml a=yaml.load(open("a.yaml"))) for i in a: print(i)
probnikСовершенно неправильно понимаете. Под виндой работает идентично. Думаю и pycharm можно легко заточить. Не детализирую как, потому что считаю что если вы не любитель пайпов линукс, то вводить струей неформатированные данные с stdin плохой стиль, граничащий с говнокодом.
второй вариант (если я правильно понял) под линукс заточен
probnik:)
а третье это вообще не то.
a="hochu vse znat 1 2 3".split()
probnikПроблема в том что проблемы вроде как нет. Опишите ясно что вы хотите. Какая у вас последовательность действий. Что не нравится. Как оно должно быть в идеале по вашему мнению.
Проблема еще актуальна.
Офлайн
0
Нет, все предельно ясно , всем огромное спасибо, дальше уже разберусь.
Я, простите, новичок ещё, много не знаю , читаю книги там курсы всякие смотрю… Вот если на вашем сайте задержусь подскажите как местное комьюнити реагирует на такого рода вопросы ??? я вроде по правилам пробежался , но в любом случае раздражать всех не хотелось бы вопросами и все такое… но сайт у вас классный, жаль чата какого-нибудь нет.
Офлайн
857
doza_andНормальный стиль. Данные должны быть максимально простыми (разделены строками). Если данные имеют формат, то появляются ограничения, которые формат тянет за собой. Например, если надо будет передать строку “- a”, чтобы он её и распечатал, то разборщик формата превратит её в “a”, тогда как нужно распечатать именно “- a”. То есть ты должен сидеть там что-то экранировать. Особенно прикольно получится, когда данные будут не вручную писаться, а приходить из других программ.
то вводить струей неформатированные данные с stdin плохой стиль
Офлайн
253
py.user.nextВсе определяется задачей. Если у ТС есть предопределенные поля - логично использовать конфигоподобный подход. Если как он потом захотел поток данных, то тут я наверное тоже просто поток строк передал.
То есть ты должен сидеть там что-то экранировать.
Отредактировано doza_and (Апрель 30, 2016 19:33:49)
Офлайн
857
doza_and
Если на входе и выходе одинаковая библиотека кодирования- декодирования
doza_andЗнаешь, как UNIX построена? Там все программы обмениваются текстом (определённое понятие). Поэтому программы, написанные 40 лет назад, прекрасно работают с программами, написанными 10 лет назад. К тому же они все прекрасно открыты для будущих программ, которых ещё нет. И вот это происходит только за счёт того, что данные, которыми обмениваются программы, максимально простые. У формата, если ты не знал, точно так же есть версии, то есть он живёт. Поэтому там не только нужен декодировщик, но и кодировщик должен выдавать данные на примитивном уровне в пределах формата. Иначе может получиться, что кодировщик будет использовать фичи формата, которых нет в декодировщике, из-за того что в декодировщике старая версия формата.
Данные приходящие из других программ это самое то. Как раз договариваешься с авторами о формате.
Отредактировано py.user.next (Май 2, 2016 02:23:55)
Офлайн
253
py.user.nextА тут и ждать не надо. Парсер yaml уже сейчас по сложности схож с парсером xml. xml за 10 лет никуда не делся. yaml тоже никуда не денется, может только из моды выйдет.
Что произойдёт с yaml'ом за десять лет?
Отредактировано doza_and (Май 2, 2016 10:34:22)
Офлайн