python似乎跳过了escape char" newline"在阅读stdin时

时间:2017-10-01 22:03:51

标签: python linux ubuntu pipe

我在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!

0 个答案:

没有答案