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

1 投票
2 回答
3598 浏览
提问于 2025-04-17 06:49

我有一个Python文件(html2text.py),当我通过命令行给它传递参数时,它能给我想要的结果,具体操作如下:

python html2text.py file.txt
  • 这里的file.txt包含了一个网站的源代码,结果会显示在控制台上……

我想在另一个文件(比如说a.py)中使用这个功能,并把结果(之前在控制台上打印的内容)存储到一个字符串里。

为此,我需要先在我的文件(a.py)中导入这个文件(html2text.py)。有人能告诉我接下来该怎么做吗……?

2 个回答

1

我觉得最好的办法是稍微调整一下你的 html2text.py 文件。可以在文件中添加一行,像这样:

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

if __name__ == '__main__': main()

这样一来,当你从命令行运行这个文件时,就可以确保一切正常。此外,如果你把所有内容都放在函数和类里,那么你现在可以在你的 a.py 文件中:

import html2text

并且可以在 a.py 中继续工作。

2

一个好的方法是在你的 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])

撰写回答