Форум сайта python.su
0
Столкнулся с задачей в которой исходные данные (которые программа должна будет обработать) представляются в виде ввода четырёх СТРОК с некими значениями. У меня возникли вопросы:
1) как вызывая программу предоставить ей в виде аргументов, несколько строк ?
2) способны ли на такой ввод все консоли ? (в частности консоль Windows)
3) сможет ли такой ввод принять функция sys.argv ?
Я понимаю, что вопрос не совсем по python, но скорее всего у меня по этой задачи ещё вопросы возникнут, так что я решил сразу тут топ создать.
Офлайн
857
TuchaМожно и через стандартный поток ввода (stdin), и через аргументы командной строки вводить. Зависит от задачи.
1) как вызывая программу предоставить ей в виде аргументов, несколько строк ?
TuchaДа. Можно и через stdin, и через аргументы во всех консолях.
2) способны ли на такой ввод все консоли ? (в частности консоль Windows)
TuchaСможет. Но данные лучше подавать на stdin.
3) сможет ли такой ввод принять функция sys.argv ?
Отредактировано py.user.next (Окт. 3, 2015 02:14:11)
Офлайн
0
py.user.nextА можно пример ввода ?
Можно и через стандартный поток ввода (stdin), и через аргументы командной строки вводить. Зависит от задачи.
stdin обычно используется под обрабатываемые данные, а аргументы командной строки - под параметры обработки/вывода.
Офлайн
253
py.user.nextКогда это sys.argv успела стать функцией?
3) сможет ли такой ввод принять функция sys.argv ?
Сможет. Но данные лучше подавать на stdin.
TuchaИ это правильно что вы с этого начали.
Я понимаю, что вопрос не совсем по python
Офлайн
857
doza_andЯ что-то даже и не заметил, что он там написал это слово, наискосок читал.
Когда это sys.argv успела стать функцией?
Tucha
А можно пример ввода ?
Я просто хочу понять как передать аргумент командный строки именно четырьмя строками, а не строку с четырьмя значениями разделённых пробелами.
#!/usr/bin/env python3 import sys print(sys.argv)
[guest@localhost py]$ ./t.py
['./t.py']
[guest@localhost py]$ ./t.py a
['./t.py', 'a']
[guest@localhost py]$ ./t.py a b c
['./t.py', 'a', 'b', 'c']
[guest@localhost py]$ ./t.py "a b c"
['./t.py', 'a b c']
[guest@localhost py]$ ./t.py "a b c" "d e f"
['./t.py', 'a b c', 'd e f']
[guest@localhost py]$ ./t.py "a b c" "d e f" g h i
['./t.py', 'a b c', 'd e f', 'g', 'h', 'i']
[guest@localhost py]$
Офлайн
0
Спасибо всем, с горем пополам разобрался, что такое stdin, stdout (я даже не знал, что есть ещё что то кроме input и sys.argv).
Теперь хоть понимаю, что значит ввод “нескольких строк” в условии задачи.
py.user.nextЯ как раз хотел увидеть пример с stdin
Отредактировано Tucha (Окт. 4, 2015 04:01:31)
Офлайн
857
Tucha
Я как раз хотел увидеть пример с stdin
#!/usr/bin/env python3 import sys lines = list(sys.stdin)[:4] print(lines)
[guest@localhost py]$ ./t.py
a
b
c c
d
e
f
['a\n', 'b\n', 'c c\n', 'd\n']
[guest@localhost py]$
Tuchainput() тоже с stdin работает.
я даже не знал, что есть ещё что то кроме imput
Отредактировано py.user.next (Окт. 4, 2015 03:29:21)
Офлайн