首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得在终端中输入的命令行来运行python文件?

如何获得在终端中输入的命令行来运行python文件?
EN

Stack Overflow用户
提问于 2018-08-24 17:55:53
回答 2查看 94关注 0票数 1

假设我有一个python文件main.py,它有一些可选的参数--学习速率,批处理大小等等。

如果我想运行这个文件,我可以将以下内容输入终端(例如Ubuntu)。

python3 main.py --learning-rate 0.1 --batch-size 100

现在,我想用main.py编写一些代码,这样在输入上面的命令之后,我就可以通过执行这些代码在字符串中得到这个命令。下面是我想要得到的字符串:

Python3 main.py -学习率0.1 -批处理-100号

我之所以要这样做,是因为我想把这个字符串写入我的记录文件中,这样我就可以更好地知道我运行了什么命令。

有人能告诉我在运行python文件时应该导入哪个包以及应该编写哪些代码来获取命令信息吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-24 18:07:37

您不能总是精确地得到您输入的内容,因为shell将在启动脚本之前先完成替换和展开文件名。例如,如果键入python "foo.py" *.txt,脚本将不会看到*.txt,它将看到文件列表,也不会看到foo.py周围的引号。

有了这个警告,sys模块就有一个名为argv的变量,该变量包含所有参数。argv[0]是脚本的名称。

要获取python可执行文件的名称,可以使用sys.executable

为了把这些联系在一起,你可以做这样的事情:

代码语言:javascript
复制
print(sys.executable + " " + " ".join(sys.argv))
票数 0
EN

Stack Overflow用户

发布于 2018-08-24 18:02:39

为什么不使用您分析过的参数重做命令呢?它不完全是您键入的,但这可能是很好的,因为它将是一种通用格式。

Ex (假设学习速率和批处理大小存储在类似名称的变量中):

代码语言:javascript
复制
command = "python3 main.py --learning-rate {} --batch-size {}".format(learning_rate, batch_size) 

当然,如果某些命令是可选的,则会稍微复杂一些,但我假设在这种情况下,这些参数会有一个默认值,因为您的网络每次都需要这些参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52009570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档