如何调度通过 input() 接受参数的 python 脚本

How to schedule python script that accepts arguments via input()

提问人:matthewiannowlin 提问时间:9/29/2023 更新时间:9/29/2023 访问量:26

问:

我有一个 python 3.11 脚本,它提示输入() 并将响应存储为 vars。我一直在我的IDE中以交互方式运行脚本。

像这样: [我点击运行 script.py]

Enter a date:
[I enter 2023-08-09]
Enter a geography id:
[I enter 18]

现在,我需要能够从命令行运行并计划脚本。所以我需要运行类似的东西:python script.py -2023-08-09 -18

我应该创建一个通过 sys.argv 和 argparse 使用参数的新版本的脚本,还是有更好的方法可以调整我的脚本以在交互运行时使用 input(),但在从终端运行时也通过命令行发送参数?

python 参数 传递 命令行参数

评论

1赞 STerliakov 9/29/2023
只需将这些参数提供给 STDIN(以最简单的形式 - 如 或从文件echo -e '2023-08-09\n18' | python script.pypython script.py <input.txt)

答:

2赞 Barmar 9/29/2023 #1

最好的办法是将脚本更改为使用 .如果没有命令行参数,它可以回退到提示。argparse

但是您可以使用 heredoc 将输入提供给脚本。将此内容放入 shell 脚本中:

#!/bin/sh

python script.py <<EOF
2023-08-09
18
EOF

并使用 或 来计划脚本。cronat