Я хочу передать несколько файлов в скрипт python, но я не знаю, как это сделать.Python, читающий несколько файлов через stdin
import sys
file1 = sys.stdin.read()
file2 = sys.stdin.read()
print
print "You entered: " + file1
print
print
print "You entered: " + file2
Выполнение сценария с вводом типизации он работает отлично, например:
python input.py
FIRST
SECOND
You entered: FIRST
You entered: SECOND
Если I трубы файл в сценарии он будет извлекать только один из входов:
cat file1.txt file2.txt | python input.py
You entered: This is file 1
This is file 2
You entered:
Мое первое предположение заключается в том, что это имеет какое-то отношение к EOF?
'cat' con'cat: несколько файлов в * один * файл и сбрасывает их в STDOUT (по умолчанию) -' read' загружает данные, пока их больше не читать (т.е. до 'EOF'). чтобы каждый файл отличался? –
В manpage '' '' '' '' 'кот': * cat - конкатенировать и печатать файлы *. Конкатенатная часть здесь - это то, что вас подводит; 'stdin' является * one * fileobject, и никакие' EOF 's отправляются, когда-либо. –
Вы не можете делать то, что хотите сделать с трубой, если не вставить специальный маркер самостоятельно. Вместо этого используйте имена файлов в командной строке. –