Как назначить конкретное значение для sys.stdin? - PullRequest
0 голосов
/ 03 марта 2019

Я использую следующий код:

#!/usr/bin/env python

import sys
from io import StringIO

#data = sys.stdin.readlines()
sys.stdin = """
hello I feel good
how are you?
where have you been?
"""
for line in sys.stdin:
    print line

Когда я запускаю вышеуказанный код, строка печати печатает каждый символ текстов, присвоенных sys.stdin.Он печатает по одному символу в строке:

h
e
l
l
o

I

....truncated

Я пытаюсь получить выходные данные такими, какими они были сохранены в sys.stdin, они должны выглядеть следующим образом:

hello I feel good
how are you?
where have you been?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Это похоже на работу:

from io import StringIO
import sys

data = u"""\
hello I feel good
how are you?
where have you been?
"""

sys.stdin = StringIO(data)

for line in sys.stdin:
    print line.rstrip()

Вывод:

hello I feel good
how are you?
where have you been?
0 голосов
/ 03 марта 2019

содержимое файла dabba.txt:

hello I feel good
how are you?
where have you been?

Это код в файле del.py

import sys
datq=sys.stdin.readlines()
for line in datq:
    print(line)

из командной строки в Ubuntu 18.04:

cat dabba.txt | python del.py 

Результат вышеприведенного кода:

hello I feel good

how are you?

where have you been?
...