我正在使用以下代码:
#!/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?
sys.stdin
是非常疯狂的。这样做会破坏 Python,因为它期望该名称引用一个类似文件的对象,可以在其上调用诸如.read()
或.readline()
之类的方法。如果您想逐行处理字符串,请使用for line in myString.splitlines():
,例如-无需在此过程中搞乱sys
模块。 - jasonharper