Python - 提供命令行参数 - 在“from X import A”中

时间:2013-02-20 09:34:49

标签: python command-line-arguments

我一直在浏览各种帖子,看看这个问题是否得到了解答。但要么我无法理解盯着我的答案,要么我之前没有问过我心中的确切问题。

问题:我创建了一个名为“Filter.py”的程序,其目的是接受一个文件作为命令行参数,比如说“Flags.txt”,使用这个文件进行大量的“过滤”。例如。加载了数组A.创建满足某些条件的子集A_1,满足另一组的A_2,依此类推。我希望这些阵列A_1,A_2可以在其他程序中使用。所以,我在另一个程序中说

from Filter import *

只要“Filter.py”被编程为工作即使没有提供命令行参数,上述工作也是如此。问题是 - 使用上述方法导入时,我可以传递命令行参数吗?

2 个答案:

答案 0 :(得分:1)

没有。最好的方法是将您的功能包装在main脚本中的函数中(让我们称之为Filter.py),该脚本可以完成所有操作。并添加以下内容:

# Filter.py
#...

if __name__ == '__main__':

    # ...

    main(some, args)

这样,从命令行调用:

python Filter.py

将执行main。如果你想在另一个脚本中导入它(main将不会被调用):

# your other program
import Filter

# ...

Filter.main(some, args)

答案 1 :(得分:0)

我不确定您是如何在Filter.py

中设置程序的

但是你可以将算法包装在一个函数中并传递函数调用中的参数

例如

from Filter import filter
result = filter(argA, argB, argC)