将命令行参数传递给在Python中导入的另一个文件

时间:2011-11-22 10:20:35

标签: python command-line-arguments

我有一个python文件(html2text.py),当我将命令行参数传递给它时,它会给出所需的结果,即按以下方式:

python html2text.py file.txt
  • 其中file.txt包含网站的源代码,结果显示在控制台上......

我想在另一个文件中使用它(比如说a.py)并将结果(在控制台上打印)存储在一个字符串中。

为此,我需要先在我的文件(html2text.py)中导入文件(a.py)。谁能告诉我如何进一步......?

2 个答案:

答案 0 :(得分:1)

好方法是在html2text.py中创建一些API。例如:

# html2text.py

def parse(filename):
    f = open(filename)
    # do the stuff
    return output_string

def main():
    import sys
    print parse(sys.argv[1])

if __name__ == '__main__':
    main()

然后您就可以在a.py

中使用它了
import html2text # main() will not run
import sys

output = html2text.parse(sys.argv[1])

答案 1 :(得分:1)

我认为最好的方法是重新组织你的html2text.py文件。将这样的行附加到您的文件中:

def main():
    message = sys.stdin.readlines()
    a = your_def(message)

if __name__ == '__main__': main()

现在你确定,从命令行调用文件时,一切都会好起来的。此外,如果您将所有内容保存在函数和类中,您现在可以在a.py

import html2text

并已在a.py中进行处理。