这更多是编码风格的问题,但我有一个处理特定文件(或一组文件)的脚本。允许用户将这些文件作为命令行参数提供会很好。当然,也有可能是用户忘记提供这些,或者文件名是无效的,所以我不得不在这里引入一个try/except。
问题是,将来可能有人想要导入我的模块。但是,我不知道 程序可能需要什么命令行参数。此外,如果在我的模块访问命令行参数时抛出错误,导入我的模块的脚本似乎会更好地处理它。但是,如果抛出错误,我的脚本仍然需要能够独立处理。
是否有解决此问题的聪明方法,或者是否是完全放弃命令行参数的最佳解决方案?
最佳答案
通常的程序:
import sys
def main(*files):
# your program's logic goes here
if __name__ == "__main__": #i.e. run directly
try:
main(*sys.argv[1:])
except IOError:
handle_error()
如果导入,__name__
将是 != "__main__"
,因此实际上什么都没有发生,导入器可以调用 main(file1, file2)
。但是,如果此脚本是主脚本(即未导入),它只会在 main
中执行它现在执行的操作。
关于python - 导入的 Python 模块中的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3569523/