我在Linux(Ubuntu)上使用Python 3.x来读取管道终端内容并将其保存到数据库中。到目前为止,一切都很棒!但有一件事我不准备理解 - 它似乎跳过了一些新行。
这是我使用我的脚本的方式(简单示例):
sudo ufw status verbose | python3 myscript.py
这就是终端输出direkt的样子(没有管道):
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
这是stdin读取之后的样子:
Status: active
Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
这是我的函数读取(来自stdin):
if not sys.stdin.isatty():
ldata = ""
for line in sys.stdin:
ldata += line + "\n"
如上所示,Python似乎跳过了一些" \ n"。叫我可怜,但这种行为困扰着我。如果字符串/内容很长,这种行为会使文本几乎不再可读。
提前thx!