首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sys.stdin.readlines()挂起Python脚本

在Python中,sys.stdin.readlines() 是一个用于从标准输入读取所有行的方法。当您在运行Python脚本时,可以通过在命令行中使用管道(|)将其与其他命令连接起来,或者将数据传递给脚本。

然而,如果在脚本中使用了 sys.stdin.readlines(),它会等待一直到输入结束,这可能会导致脚本挂起。为了避免这种情况,您可以使用 sys.stdin.buffer.readline() 方法逐行读取输入,这样可以在数据可用时立即处理它们。

以下是一个使用 sys.stdin.buffer.readline() 的示例:

代码语言:python
代码运行次数:0
复制
import sys

for line in sys.stdin:
    # 对每一行进行处理
    print(line.strip())

在这个示例中,我们使用 for 循环逐行读取输入,并在每一行上执行 print 语句。这样,当数据可用时,我们可以立即处理它们,而不会导致脚本挂起。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Python 中的tab补全

    1.准备一个Python脚本 cat > tab.py <<EOF #!/usr/local/bin/python # python tab file import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.environ['HOME'], '.pythonhistory') try:     readline.read_history_file(histfile) except IOError:     pass atexit.register(readline.write_history_file, histfile) del os, histfile, readline, rlcompleter EOF 2.查看Python默认的模块存放位置 [root@victor python2.7]# python Python 2.7.6 (default, Sep 17 2017, 04:41:33) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages'] 3.拷贝到目录下 cp tab.py /usr/local/lib/python2.7 4.现在可以用了 [root@victor python]# cp tab.py /usr/local/lib/python2.7 [root@victor python]# python Python 2.7.6 (default, Sep 17 2017, 04:41:33) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tab >>> import sys >>> sys. sys.__class__(              sys.__sizeof__(             sys.displayhook(            sys.getprofile(             sys.ps1 sys.__delattr__(            sys.__stderr__              sys.dont_write_bytecode     sys.getrecursionlimit(      sys.ps2 sys.__dict__                sys.__stdin__               sys.exc_clear(              sys.getrefcount(            sys.py3kwarning sys.__displayhook__(        sys.__stdout__              sys.exc_info(               sys.getsizeof(              sys.setcheckinterval( sys.__doc__                 sys.__str__(                sys.exc_type                sys.gettrace(               sys.setdlopenflags( sys.__excepthook__(         sys.__subclasshook__(       sys.excepthook(             sys.hexversion

    03

    python - sys模块

    sys.argv           命令行参数List,第一个元素是程序本身路径   sys.modules.keys() 返回所有已经导入的模块列表    sys.exc_info()     获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息   sys.exit(n)        退出程序,正常退出时exit(0)   sys.hexversion     获取Python解释程序的版本值,16进制格式如:0x020403F0   sys.version        获取Python解释程序的版本信息   sys.maxint         最大的Int值   sys.maxunicode     最大的Unicode值   sys.modules        返回系统导入的模块字段,key是模块名,value是模块   sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值   sys.platform       返回操作系统平台名称   sys.stdout         标准输出   sys.stdin          标准输入   sys.stderr         错误输出   sys.exc_clear()    用来清除当前线程所出现的当前的或最近的错误信息   sys.exec_prefix    返回平台独立的python文件安装的位置   sys.byteorder      本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'   sys.copyright      记录python版权相关的东西   sys.api_version    解释器的C的API版本   sys.version_info   >>> sys.version_info   (2, 4, 3, 'final', 0) 'final'表示最终,也有'candidate'表示候选,表示版本级别,是否有后继的发行   sys.displayhook(value)      如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._.指在python的交互式解释器里,'_'代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来   sys.getdefaultencoding()    返回当前你所用的默认的字符编码格式   sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字   sys.setdefaultencoding(name)用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除   sys.builtin_module_names    Python解释器导入的模块列表   sys.executable              Python解释程序路径   sys.getwindowsversion()     获取Windows的版本   sys.stdin.readline()        从标准输入读一行,sys.stdout.write("a") 屏幕输出a

    02
    领券