Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数卡在读取行中_Python_Bash_Python 2.7 - Fatal编程技术网

Python 函数卡在读取行中

Python 函数卡在读取行中,python,bash,python-2.7,Python,Bash,Python 2.7,在没有输入的情况下,我的python脚本一直处于停滞状态: 其他: 我的程序必须不支持输入,所以如果没有输入,有没有办法计算出来,这样我就可以退出函数了。我尝试查看行是否为空,但readlines函数中的控件似乎丢失(从未退出) 下面是完整的if语句 if len(args) != 0 and args[0] != '-': # print('B') input_file = args[0] try:

在没有输入的情况下,我的python脚本一直处于停滞状态: 其他:

我的程序必须不支持输入,所以如果没有输入,有没有办法计算出来,这样我就可以退出函数了。我尝试查看行是否为空,但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()

有没有办法解决这个问题?

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


相反,使用select模块检查(超时)新数据。如果有的话,用read()读取它并自己缝合数据,然后分割行并将它们提供给程序的其余部分

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


相反,使用select模块检查(超时)新数据。如果有的话,用read()读取它并自己缝合数据,然后分割行并将它们提供给程序的其余部分

我的评论原文转到u0b34a0f6ae:

import fileinput

for line in fileinput.input():
    pass

我的评论原文转到u0b34a0f6ae:

import fileinput

for line in fileinput.input():
    pass

如果您给我们一个答案,包括您如何运行这个,如何输入信息等,我们可能会提供帮助。但是如果没有这些,就不可能猜到。可能是相关的?我看不出你的代码有什么特别的错误。用户可以负责提供空输入,比如
pythonyourscript.py
readlines
只是简单地阻塞,直到它到达输入“文件”的末尾,您可以通过为终端使用正确的控制字符(我相信通常是Unix中的control-D或Windows中的control-Z)来模拟该文件。如果您给我们一个示例,包括您如何运行它,如何向其输入,等等,我们可能会有所帮助。但是如果没有这些,就不可能猜到。可能是相关的?我看不出你的代码有什么特别的错误。用户可以负责提供空输入,比如
pythonyourscript.py
readlines
只是阻塞,直到它到达输入“文件”的末尾,您可以通过为终端使用正确的控制字符(我相信,通常是Unix中的control-D或Windows中的control-Z)来模拟该文件。答案应该是自包含的。你应该在你的答案中包含链接,这样人们就不必通过搜索评论来了解你在说什么。答案应该是独立的。你应该在你的答案中包含这个链接,这样人们就不必通过搜索评论来了解你在说什么