【问题标题】:What does sys.stdin.read() return exactly in python? [duplicate]sys.stdin.read() 在 python 中究竟返回什么? [复制]
【发布时间】:2017-10-30 00:42:44
【问题描述】:

我是 python 新手,正在开发交互式 shell。我正在尝试 python 标准库,我从文档中读到 stdin.read() 返回一个字符串参数。 但是当我继续打印存储输入值的变量时,它会显示一个随机字符。对它的含义感到困惑

>>>input=sys.stdin.read()
>>>1 2
>>>sys.stdout.write(input)
>>>1 2 
   4

4 代表什么。为什么会显示。如果相反,我会做print(input)。它工作正常并返回"1 2"。它只是一个垃圾值还是有一些意义。

当我拆分输入以获取列表时。它只返回两个元素['1', '2']。正如预期的那样。我很好奇为什么显示 4 并且它不是恒定的。

>>>input=sys.stdin.read()
>>>1 2 3 4
>>>sys.stdout.write(input)
>>>1 2 3 4
   8

打印和拆分再次正常工作。

【问题讨论】:

    标签: python python-3.x standard-library


    【解决方案1】:

    48sys.stdout.write 返回。它“表示”已打印了多少个字符(或字节)。

    就像documentation on sys.stdin and sys.stdout 状态:

    这些流是常规文本文件,类似于 open() 函数返回的那些。

    这些流有一个write 方法:

    将给定的字节类对象 b 写入底层原始流,并返回写入的字节数。

    您可以直接忽略它,或者如果它真的很麻烦,您只需在变量中捕获返回:

    >>> bytes_written = sys.stdout.write(input)
    1 2
    
    >>> bytes_written
    4
    

    【讨论】:

      猜你喜欢
      • 2017-11-27
      • 2017-02-11
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2016-04-21
      相关资源
      最近更新 更多