如何从命令行界面将字符串作为标准输入传递给 python 脚本

kam*_*mal 7 python

目前,我正在使用以下命令来执行此操作

$ python scriptName.py <filePath

此命令使用“<”将文件标准输入到脚本中。它工作正常,我可以使用 sys.stdin.read 来获取文件数据。

但是,如果我想将文件数据作为字符串传递,我不想在运算符“<”中传递文件路径怎么办。

无论如何,我可以在哪里将 String 作为 stdin 传递给 python 脚本?

谢谢,卡马尔

Lau*_*low 8

我阅读您的问题的方式,您目前有一些abc.txt包含内容的文件

输入到我的程序

你这样执行它:

python scriptName.py <abc.txt
Run Code Online (Sandbox Code Playgroud)

现在您不再想通过这个文件,而是将输入作为命令的一部分输入,同时仍然从 stdin 中读取。在 windows 命令行上工作,您可以这样做:

echo Input to my program | python scriptName.py
Run Code Online (Sandbox Code Playgroud)

而在 Linux/Mac 上,你最好引用它以避免 shell 扩展:

echo "Input to my program" | python scriptName.py
Run Code Online (Sandbox Code Playgroud)

这仅适用于 windows (AFAIK) 上的单行输入,而在 linux (可能还有 Mac) 上,您可以使用 -e 开关插入换行符:

echo -e "first line\nsecond line" | python scriptName.py
Run Code Online (Sandbox Code Playgroud)


Sen*_*ran 5

还有raw_input,你可以使用使程序提示输入,你可以在一个字符串发送。是的,它在http://www.python.org的教程的前几页中提到。

>>> x = raw_input()
Something  # you type
>>> x
'Something'
Run Code Online (Sandbox Code Playgroud)

通过<shell 重定向操作发送输入是 shell 的属性,而不是 python。