将命令行参数传递给Python中导入的另一个文件
我有一个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])