SafeConfigParser.read()带有文件对象而不是字符串

时间:2017-02-11 00:19:17

标签: python configparser python-click

我使用Click传递一个文件名参数。此文件名旨在由ConfigParser.SafeConfigParser.read()用于读取ini文件。不幸的是,Click传递了read()无法处理的文件对象。

是否有办法允许read()获取文件对象,或者可以单击配置为不打开文件(但仍然进行检查)?

1 个答案:

答案 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()