shwq.net
当前位置:首页 >> Python中sys模组stDin的问题 >>

Python中sys模组stDin的问题

因为命令里用了管道符号,这就会把python的stdin定义为了less的stdout。因此python不能再读取键盘输入。 建议把txt文件名作为命令行参数传入python,让python自己去读取文件。这样python的stdin就还是指向键盘输入。命令如下: $ python 1.py te...

这样就行了: import sys while True: line = sys.stdin.readline() # 一次只读一行 if not line: # 如果是空行(^Z)就停止 break a = line.split() print int(a[0]) + int(a[1]) # 否则回显,再回去读下一行

read读取数据 ctrl+d是结束输入 ,read并不会像input那样遇到回车就返回读取的数据 它会缓存或者 等到ctrl d再读取数据

import sys class LineBuffer: def __init__(self, buffsize=10): self.buffer = [] self.buffsize=buffsize def flush(self): output, self.buffer = self.buffer, [] return output def append(self, line): self.buffer.append(line) if self...

>>> dir(sys.stdin) ['_CHUNK_SIZE', '__class__', '__delattr__', '__doc__', '__enter__', '__eq__', ' _exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__ nit__', '__iter__', '__le__', '__lt__', '__ne__'...

read读取数据 ctrl+d是结束输入 ,read并不会像input那样遇到回车就返回读取的数据 它会缓存或者 等到ctrl d再读取数据

他们都错了。 from sys import stdin之后你的这个scope的dict里是增加了stdin埃 所以应该是: temp=__import__('sys') stdin=temp.stdin del temp

解决方案: select,poll等监视标准输入文件句柄(0),一旦有I/O操作就打印数据 使用sys.stdin.isatty()函数 import sys def check_method_1(): import select if select.select([sys.stdin, ], [], [], 0.0)[0]: print "Have data!" for line in s...

用特殊字符吧 if line.strip()=="$$"

python的stdout是有缓冲区的,给你个例子你就知道了 import timeimport sysfor i in range(5): print i, #sys.stdout.flush() time.sleep(1)这个程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序...

网站首页 | 网站地图
All rights reserved Powered by www.shwq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com