我使用了一个函数,它以交互方式从用户那里获取一些输入并返回一些值。我想运行该函数(不更改它)而不必自己输入值,例如从列表中读取它。我怎样才能做到这一点?
MCVE:
def add():
a = int(input('first number: '))
b = int(input('first number: '))
return(a+b)
Run Code Online (Sandbox Code Playgroud)
我希望能够运行类似magic(add(), [2, 3])获取输出的东西5。
假设您使用的是 Linux 或 wsl,您可以通过标准输入管道输入一些输入。IE,
$ echo $'1\n3\n' | python scripy.py
Run Code Online (Sandbox Code Playgroud)
应该产生4.如果你有一个内容相同的文件,你可以使用 cat
$ cat file.in | python script.py
Run Code Online (Sandbox Code Playgroud)
仅在绝对必要时:
python也可以用来模拟stdin。sys.stdin 只是 StringIO 类的一个实例。我们可以使用包含我们选择的内容的 StringIO 类覆盖默认的 sys.stdin。
with StringIO(in_string) as f:
tmp = sys.stdin
sys.stdin = f
add()
sys.stdin = tmp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |