我使用Click传递一个文件名参数。此文件名旨在由ConfigParser.SafeConfigParser.read()
用于读取ini文件。不幸的是,Click传递了read()
无法处理的文件对象。
是否有办法允许read()
获取文件对象,或者可以单击配置为不打开文件(但仍然进行检查)?
答案 0 :(得分:1)
注意:我发现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()