功能卡在readlines中

时间:2018-04-28 21:37:17

标签: python bash python-2.7

当没有输入时,我的python脚本在这一点上一直卡住: 否则:

lines = sys.stdin.readlines()

我的程序必须支持没有输入,所以如果没有输入,有没有办法找到它,所以我只是退出函数。我试过看看行是否为空,但控件似乎在readlines函数中丢失(从不退出)

这是完整的if语句

if len(args) != 0 and args[0] != '-':
           # print('B')
            input_file = args[0]
            try:
                f = open(input_file, 'r')
                lines = sys.stdin.readlines()
                lines = f.close()
            except:
                return
        else:
            #print('c')
            lines = sys.stdin.readlines()

有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您不能使用readlines,因为这会强制要读取新行,并且根据您的输入,您无法预测何时出现。

相反,使用select模块检查(超时)新数据。如果有的话,用read()读取它并自己将数据拼接在一起,然后分割线和&将它们提供给你的程序的其余部分。

答案 1 :(得分:1)

从我的评论原文转到u0b34a0f6ae:

import fileinput

for line in fileinput.input():
    pass

How do you read from stdin in Python?