FileType
открывает файл для вас; не пытайтесь сделать это снова:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-f","-inputfile1", type=argparse.FileType('r'), help = "file one")
parser.add_argument("-t","-inputfile2", type=argparse.FileType('r'), help = "file two")
args = parser.parse_args()
inputfileone = args.inputfile1 # file is already open
inputfiletwo = args.inputfile2
#read file from var inputfileone
for line in fileone:
.....
альтернатива:
parser = argparse.ArgumentParser()
parser.add_argument("-f","-inputfile1", help = "file one")
parser.add_argument("-t","-inputfile2", help = "file two")
args = parser.parse_args()
inputfileone = args.inputfile1 # plain filename
inputfiletwo = args.inputfile2
#read file from var inputfileone
with open(inputfileone, 'r') as fileone:
for line in fileone:
.....
В обоих случаях дождитесь, пока после parse_args
не будет использоваться переменная inputfileone
.
====
Лучшая организация сценариев:
import argparse
def read_file1(filename):
with open(filename) as f:
...
def create_parser():
parser = argparse.ArgumentParser()
parser.add_argument("-f","--inputfile1")
...
return parser
if __name__ == '__main__':
parser = create_parser()
args = parser.parse_args()
filename1 = args.inputfile1
read_file1(filename1)
....