使用python中不同文件的命令行参数

时间:2016-07-27 18:46:22

标签: python command-line-arguments

我最近发现(令我惊讶的是)你可以调用命令行参数,而不是输入它时显式调用的文件。

因此,您可以在命令行中运行inputView,并使用sys.argv [1]来获取字符串' abc'来自file2.py或file3.py。

我仍觉得这不应该工作,但我很高兴,因为它给我带来了很多麻烦。

但是现在我真的很感激为什么/如何运作的答案。我假设sys.argv [1]对每个文件都是本地的。

1 个答案:

答案 0 :(得分:2)

至于如何/为什么,sys只导入一次(当python启动时)。导入sys后,会使用命令行参数填充其argv成员。后续的import语句会返回相同的sys模块对象,因此无论您import sys的位置如何,您都会获得相同的对象,因此sys.argv将永远是相同的列表,无论您在应用程序中的哪个位置引用它。

是否在多个地方进行命令行解析是一个不同的问题。一般来说,我的回答是" NO"除非您只是将脚本混合在一起工作,以便在接下来的2或3天内工作。你期望持续的任何东西应该完成所有它的预先解析(可能有一个强大的参数解析器,如argparse),并将各种函数/类所需的数据从它传递给它们#s; s切入点。