gpt4 book ai didi

python - 从管道读取 Python 标准输入,不阻塞空输入

转载 作者:行者123 更新时间:2023-11-28 21:34:15 27 4
gpt4 key购买 nike

我试图在从管道接收时读取 Python 脚本中的 stdin。

我使用了这些行:

for line in sys.stdin:
print line

并运行脚本: echo "test" | script.py
到目前为止它工作正常。但是,如果我不使用管道,程序会停留在 for命令。意思是调用: ./script.py会使脚本不起作用。我怎样才能解决这个问题?

最佳答案

编辑:在这种情况下,您显然甚至不希望它读取行或处理 KeyboardInterrupt ,所以你需要做的是检查空 stdin .检查您是否是终端并按编辑后的示例所示通过。
sys.stdin是类文件。尝试:

if not sys.stdin.isatty():
data = sys.stdin.readlines()
# Do something with data

如果你在没有 stdin 的情况下运行它我不认为它会像以前那样卡在你身上...因为 sys.stdin将是空的。然后该功能应继续。

关于python - 从管道读取 Python 标准输入,不阻塞空输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53541223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com