如何从命令行界面将字符串作为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)