Как получить аргументы через shell pipe в python? - PullRequest
13 голосов
/ 24 мая 2011

Я хотел бы сделать что-то вроде этого:

find -name "foo*" | python main.py

и получить доступ ко всем файлам, найденным программой find. Как мне получить доступ к этому в Python?

Ответы [ 5 ]

19 голосов
/ 24 мая 2011
import sys
for line in sys.stdin:
    print line
4 голосов
/ 20 мая 2013

Мне нравится использовать $ (...) для аргументов командной строки, которые зависят от какой-либо другой программы.Я думаю, что это будет работать для вашей программы python main.py $(find -name "foo*").Найдено здесь

3 голосов
/ 24 мая 2011

Используйте sys.stdin.read () или raw_input ()

Конвейер просто изменяет дескриптор файла stdin, указывая на конвейер, в который записывается команда слева.

1 голос
/ 24 мая 2011

Я думаю, что вы можете сделать:

import sys
print sys.stdin.readlines() #or what you want
0 голосов
/ 24 мая 2011

Полагаю, fileinput может быть тем, что вы хотите.

...