Python中的多个if __name__
我想写一段代码,让它可以执行一个函数,并且分成两个类别:
- 单个文件
- 多个文件
我该怎么构建这个代码呢?我在想可以用多个 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