Python 命令解释器

Python command interpreter

我有一个 python 脚本,我想以这种方式从 bash 脚本 运行:

#!/bin/bash
python -c "$(< input_file)" &> output_file

在 python 脚本中我有一些不同的方法,因此输入文件包含如下内容:

from script import *; method_1(); method_2();

问题是,在这两种方法中,它们都有一个 input() 方法需要用户输入(无法更改)。

那么如何在 input_file 中传递一个参数(某种换行符),以便将其传递给 method_1() 或 [=17 中的 input() 方法=]?

我相信 input 函数只是从标准输入中读取。

因此,我认为您应该能够将数据通过管道(或重定向)传输到 python 调用,以便 input 接收。

一个方便的方法是使用 "here document":

$ cat myscript
#!/bin/bash
python -c "$(< input_file)" &> output_file << END
3
4
END

这是一个独立的测试用例:

$ cat input_file
height = input("Height:\n")
width = input("Width:\n")
print "Area: ", height*width

$ bash myscript
(no output)

$ cat output_file 
Height:
Width:
Area:  12