Python中的多个if __name__

0 投票
1 回答
583 浏览
提问于 2025-04-18 04:01

我想写一段代码,让它可以执行一个函数,并且分成两个类别:

  1. 单个文件
  2. 多个文件

我该怎么构建这个代码呢?我在想可以用多个 if _name__ 来实现。

#!/usr/bin/env python

def main(filename)
    # do something with one file.

if __name__ = '__main__'
   single_filename = "file.txt"
   main(single_filename)

# if _name__ ??
# multiple_files = ['file1.txt', 'file2.txt']
# for file in multiple files:
#    main(file)

之后我会使用 argparse 这个工具,让用户选择他们想要在单个文件还是多个文件上运行。

1 个回答

5

如果我理解你的需求没错的话,我觉得最好的办法是检查传入程序的参数。

def main(f):
    pass

if __name__ == '__main__':
    files = sys.argv[1:] # the first argument is the name of the program
    for f in files:
        main(f)

在命令行中,你可以运行

python bar.py file1 file2

撰写回答