如何从命令行界面将字符串作为stdin传递给python脚本
目前,我正在使用以下命令来执行此操作如何从命令行界面将字符串作为stdin传递给python脚本,python,Python,目前,我正在使用以下命令来执行此操作 $python scriptName.py有raw_input,您可以使用它让程序提示输入,并可以发送字符串。是的,在教程的前几页中提到了它 通过发送输入,就像我读你的问题一样,你现在有一些文件abc.txt,里面有内容 Input to my program 在Linux/Mac上,您最好引用它以避免外壳扩展: echo "Input to my program" | python scriptName.py 这仅适用于windows(AFAIK)上的单
$python scriptName.py有raw_input
,您可以使用它让程序提示输入,并可以发送字符串。是的,在教程的前几页中提到了它
通过发送输入,就像我读你的问题一样,你现在有一些文件abc.txt
,里面有内容
Input to my program
在Linux/Mac上,您最好引用它以避免外壳扩展:
echo "Input to my program" | python scriptName.py
这仅适用于windows(AFAIK)上的单行输入,而在linux(可能还有Mac)上,您可以使用-e开关插入新行:
echo -e "first line\nsecond line" | python scriptName.py
我可能错了,但我读OP问题的方式是,我认为他可能正在调用一个os命令来运行python脚本中的shell脚本,然后使用
echo Input to my program | python scriptName.py
echo "Input to my program" | python scriptName.py
echo -e "first line\nsecond line" | python scriptName.py
import subprocess;
script_child = subprocess.Popen(['/path/to/script/myScript.sh'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
stdout, stderr = clone_child.communicate("String to pass to the script.")
print "Stdout: ", stdout
print "Stderr: ", stderr
script_child = subprocess.Popen(['/path/to/script/myScript.sh', '-v', 'value', '-fs'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)