我正在使用Click传入一个文件名参数。此文件名旨在用于ConfigParser.SafeConfigParser.read()
读取 ini 文件。read()
不幸的是,Click 传入了一个无法处理的文件对象。
有没有办法允许read()
获取文件对象或者可以将 Click 配置为不打开文件(但仍然进行检查)?
我正在使用Click传入一个文件名参数。此文件名旨在用于ConfigParser.SafeConfigParser.read()
读取 ini 文件。read()
不幸的是,Click 传入了一个无法处理的文件对象。
有没有办法允许read()
获取文件对象或者可以将 Click 配置为不打开文件(但仍然进行检查)?
注意:我发现ConfigParser
有一种专门用于读取文件句柄的方法。它被称为readfp(self, fp, filename=None)
。这可能是一个更好的答案。如果有人对该解决方案感兴趣,我将在下面留下我的旧答案。
您可以使用该name
属性从文件句柄中获取文件名。这可以传递给ConfigParser.SafeConfigParser.read()
.
只是打印出文件名的小例子:
import click
@click.command()
@click.argument('filehandle', type=click.File('rb'))
def print_filename(filehandle):
print "File name: %s" % filehandle.name
if __name__=="__main__":
print_filename()