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
我有一个 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