argparse,python3,不能将解析的文件用作文件

问题描述 投票:0回答:1

我需要解析 .txt 文件作为脚本的参数。然后按行分割,变成列表并打印。

parser = argparse.ArgumentParser()
parser.add_argument('textA', type=argparse.FileType('r'), nargs=1, default='textA.txt')
args = parser.parse_args()

textA = args.textA.read().split('\n')
print(textA)

但最终在控制台中得到

AttributeError: 'list' object has no attribute 'read'

我想我只是不知道如何正确解析文件

python-3.x argparse
1个回答
1
投票

narg
参数是问题的原因。

这是解释该参数用法的文档 https://docs.python.org/3/library/argparse.html?highlight=argparse#nargs

  1. 如果您希望此参数是可选的并且默认为“textA.txt”,则在这种情况下应该使用
    nargs="?"
  2. 如果您希望将此字段设为必填字段,请将
    args.textA.read()
    更改为
    args.textA[0].read()
    并保留
    nargs=1
    原样
© www.soinside.com 2019 - 2024. All rights reserved.