我有一个python脚本,有时会提示用户输入以形式输入
raw_input('please provide foo')
。
我有一个bash脚本,其中包括执行该python脚本:
NUM_OUTPUT=$(python -i create_lookup_txtfiles.py data-dir=/data/ad6813/pipe-data/Bluebox/raw_data/dump to-dir=/data/ad6813/caffe/data_info/$TASK_NAME bad-min=$BAD_MIN)
我想运行这个bash脚本,并在需要时提供输入(作为用户,通过交互式shell)到python脚本的提示。
但是当我运行bash脚本时,我没有看到python提示。
我也试过没有-i
旗帜,但没有用
有办法解决这个问题吗?
答案 0 :(得分:0)
很难区分提示字符串和脚本输出,因此需要使用不同的文件从Python编写提示。下面是tty的示例,但您也可以使用stderr作为提示:
bash脚本:
m=$(python d.py)
echo "OUTPUT $m"
python脚本:
import os
tty=os.open("/dev/tty", os.O_RDWR)
os.write(tty, "Enter> ");
s=raw_input("")
print s
相同的bash脚本也应该与stderr提示一起使用:
python脚本:
import sys
sys.stderr.write("Enter> ");
s=raw_input("")
print s