argumentparser关闭文件参数

Saw*_*yer 8 python

argumentparser可以获取文件类型参数并直接打开文件,例如:

parser.add_argument('infile', nargs='?', type=argparse.FileType('r'))
args = parser.parse_args().__dict__
input = args['infile'].readlines()
Run Code Online (Sandbox Code Playgroud)

我需要关闭args['infile']我的程序吗?辩论者会为我关闭吗?我没有在文件中找到任何提及的内容.

ava*_*sal 5

不,它不会关闭文件类型对象.. 看到这个

这里的问题是FileType可能返回stdinor stdout,所以它不能总是关闭文件对象。

大量未关闭的文件句柄可能会给某些操作系统带来问题,但仅此而已。从好的方面来说,argparse 接受任何可以检查和转换字符串输入的可调用对象作为其类型参数这一事实简单、干净且有效。

也看看这个

  • 因此,由于 argparse 不会关闭文件,因此使用此解决方案不是更好吗:/sf/answers/1320410311/ (2认同)