python: использование дескриптора файла для печати содержимого файла

Я следую этому совету: Файл как аргумент командной строки для argparse – сообщение об ошибке, если аргумент недействителен для печати содержимого файла. Вот MWE:

import argparse import os def is_valid_file(parser, arg): """ :rtype : open file handle """ if not os.path.exists(arg): parser.error("The file %s does not exist!" % arg) else: return open(arg, 'r') # return an open file handle parser = argparse.ArgumentParser(description='do shit') parser.add_argument("-i", dest="filename", required=True, help="input file with two matrices", metavar="FILE", type=lambda x: is_valid_file(parser, x)) args = parser.parse_args() print(args.filename.read) 

Однако я получаю это вместо содержимого файла:

 <built-in method read of _io.TextIOWrapper object at 0x7f1988b3bb40> 

Что я делаю не так?

замените это:

 print(args.filename.read) 

чтобы:

 print(args.filename.read()) 

Читайте о классе и объекте здесь: Класс и объект

Interesting Posts