sys.stdin.read()在python中完全返回什么?

时间:2017-05-29 16:34:21

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

我是python的新手,正在开发交互式s​​hell。我正在尝试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

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

1 个答案:

答案 0 :(得分: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