python - 导入的 Python 模块中的命令行参数

标签 python command-line

这更多是编码风格的问题,但我有一个处理特定文件(或一组文件)的脚本。允许用户将这些文件作为命令行参数提供会很好。当然,也有可能是用户忘记提供这些,或者文件名是无效的,所以我不得不在这里引入一个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/

相关文章:

python - 如何定义具有条件作为输入的函数?

ruby - 仅当从命令行调用脚本时才运行代码

batch-file - 使用 cPDF 生成横向文件的批处理脚本?

python - 从列表中检测异常值

python - 使用指定的列转换和求和 Pandas 时间序列数据

python - 使用 `contains` 合并 DataFrame(不是完全匹配!)

python - 将张量添加到 Tensorflow 中张量的特定列

php - 从 PHP 向命令行程序发送输入

c# - 通过命令行仅构建 VS 安装项目

windows - 通过批处理或 cmd 文件停止和启动服务?