【发布时间】:2021-01-07 01:59:37
【问题描述】:
有一个类似的交互式 python 脚本
def myfunc():
print("enter value between 1 to 10")
i=int(input())
if(i<1 or i>10):
print("again")
myfunc()
else:
print(i)
我想将最终输出(print(i))存储在 shell 变量中。类似的东西
python myFile.py | read a
每次我运行命令时,上面的查询都会卡住。有可能这样做吗?
即使( read b | python myFile.py ) | read a 违背了交互式 python 函数的目的,但这也不起作用。如果myfunc() 是非交互式的(不期望用户输入),它就可以工作。现实中的函数接受一些输入,对其进行操作,然后以所需格式输出结果。我知道使用 python 或 shell 会容易得多,但由于我已经编写了 python 函数,所以想知道是否可以链接两者。如果是,是否也可以只将最终值添加到 shell 变量而不是所有 print()
当我这样做时会发生同样的问题(终端卡住)
python myFile.py > someFilename
但是,即使终端没有响应,文件 someFilename 也已创建。似乎 shell 同时启动了这两个进程,这是有道理的。我猜如果python myfile.py 在打开管道之前以某种方式独立执行,这可能是可能的,但我可能错了。
【问题讨论】:
标签: python