【发布时间】:2020-03-28 20:40:00
【问题描述】:
我如何打开 file.txt 并将值存储到 2 个变量名称 inputfileone 和 inputfiletwo 但错误让我感到困惑....即使文件位置是真的...当我运行命令时
python task.py -f fileone.txt -t filetwo.txt
error = with open(inputfileone, 'r') as fileone: FileNotFoundError: [Errno 2] 没有这样的文件或目录:''
下面是我的代码...
import argparse
#read file from var inputfileone argparse
with open(inputfileone, 'r') as fileone:
for line in fileone:
.....
#read file from var inputfiletwo argparse
with open(inputfiletwo, 'r') as filetwo:
for line in filetwo:
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 #store value to 'with open(inputfileone, 'r') as fileone:'
inputfiletwo = args.inputfile2
【问题讨论】:
-
您声明
inputfileone="",然后尝试打开它,这意味着您正在打开一个不存在的空文件。将with open语句移到末尾。 -
@rassar 当我删除 inputfileone = "" 和 inputfiletwo = "" 时。使用 open(inputfileone, 'r') as fileone 时出错:NameError: name 'inputfileone' is not defined
-
保留
inputfileone=""语句。将with open(inputfileone, 'r') as fileone:语句移到inputfiletwo = args.inputfile2之后。 -
使用
FileType时,解析器会为您打开文件。您不应尝试使用open(inputfileone)再次打开它。但是,如果您希望完全控制打开(在 with 上下文中),请不要使用FileType;只接受一个文件名字符串。 -
等到
parse_args()之后使用该文件;
标签: python file input argparse