我是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
再次打印和拆分工作正常。
答案 0 :(得分:1)
4
或8
由sys.stdout.write
返回。它“表示”已打印了多少个字符(或字节)。
与documentation on sys.stdin
and sys.stdout
州一样:
这些流是常规文本文件,类似于open()函数返回的文件。
这些流有一个write
方法:
将给定的类字节对象b写入基础原始流并返回写入的字节数。
你可以简单地忽略它,或者如果它真的麻烦你只需在变量中捕获返回值:
>>> bytes_written = sys.stdout.write(input)
1 2
>>> bytes_written
4