2

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

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

4

1 回答 1

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()
于 2017-02-12T15:22:15.453 回答