当我们在使用 argparse 模块时,有时候会使用 argparse.FileType 来创建一个文件类型的参数。例如:
import argparse
parser = argparse.ArgumentParser() parser.add_argument('--output', type=argparse.FileType('w'))
如果我们使用 argparse.FileType('w') 来创建一个写入的文件类型参数,那么这个参数在以后的程序中会被用来写入数据。但是,如果在文件不存在的情况下,使用这个参数来写入数据,它只会创建一个空文件。
为了避免这种情况发生,我们需要先手动创建一个文件并写入数据,然后再使用 argparse.FileType('w') 来打开这个文件进行写入。例如:
import argparse
parser = argparse.ArgumentParser() parser.add_argument('--output', type=argparse.FileType('w'))
args = parser.parse_args()
if args.output is not None: with open(args.output.name, 'w') as f: f.write('hello world')
经过这样的操作后,我们就可以使用 argparse.FileType('w') 来直接写入文件了。