Python键错误:';输出路径';
我正在尝试运行以下python代码进行练习Python键错误:';输出路径';,python,Python,我正在尝试运行以下python代码进行练习 #!/bin/python3 import os import sys # # Complete the maximumDraws function below. # def maximumDraws(n): return n+1 if __name__ == '__main__': fptr = open(os.environ['OUTPUT_PATH'], 'w') t = int(input()) for
#!/bin/python3
import os
import sys
#
# Complete the maximumDraws function below.
#
def maximumDraws(n):
return n+1
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
t = int(input())
for t_itr in range(t):
n = int(input())
result = maximumDraws(n)
fptr.write(str(result) + '\n')
fptr.close()
但是我收到了这个错误信息
Traceback (most recent call last):
File "maximumdraws.py", line 13, in <module>
fptr = open(os.environ['OUTPUT_PATH'], 'w')
File "/home/inindekikral/anaconda3/lib/python3.6/os.py", line 669, in __getitem__
raise KeyError(key) from None
KeyError: 'OUTPUT_PATH'
回溯(最近一次呼叫最后一次):
文件“maximumdraws.py”,第13行,在
fptr=open(os.environ['OUTPUT_PATH'],'w')
文件“/home/inindekikral/anaconda3/lib/python3.6/os.py”,第669行,在__
从“无”提升钥匙错误(钥匙)
KeyError:“输出路径”
我的操作系统是Linux Mint 19肉桂。
我必须做什么?A
KeyError
表示元素没有键。这意味着os.environ
没有键'OUTPUT\u PATH'
os.environ允许您从python脚本访问环境变量,但似乎没有名为OUTPUT\u PATH的环境变量。在运行python代码之前,从终端运行python脚本,设置一个名为OUTPUT_PATH的环境变量,例如:
export OUTPUT_PATH="home/inindekikral/Desktop/output.txt"
您的python脚本将在该位置创建一个文件。我确信还有其他方法可以做到这一点,但对于Hackerrank练习,文件指针是这样打开的:
fptr = open(os.environ['OUTPUT_PATH'], 'w')
。。。我想让它变成标准输出
我刚把那句话改成
fptr = sys.stdout # stdout is already an open stream
这就是我想要的
注意,一方面,os.environ['OUTPUT\u PATH']
是一个字符串,而fptr
是一个流/文件指针
变化:
OUTPUT\u PATH
环境变量)os.environ['OUTPUT_PATH']=“junk.txt”#代码>
必须将输出路径定义为导出的环境。变量或者更好:使用命令行参数…是否设置了环境变量“OUTPUT_PATH”?在bash中,您可以通过运行以下命令进行设置:
export OUTPUT\u PATH='myfile'
您想做什么?它仍然输出错误,我真的很惊讶,这个被浏览了近1000次并被多人评论的问题得到了否决票,而这个甚至不能解决问题的答案却得到了否决票。@SDE我解释了os.environ的作用以及op遇到这种错误的原因。我真的很惊讶“您没有一个名为OUTPUT_PATH的环境变量”的答案并没有解决这个问题。您需要创建一个名为OUTPUT_PATH的环境变量,该变量显示要创建的文件的路径,就是它。这里我特别根据op的情况回答,他使用Linux操作系统,用户名是“inendekikral”。实际上,这看起来会导致ISDirectoryError,所以他应该只使用“output.txt”或“home/inindekikral/Desktop/output.txt”是的,你是对的,至少我来自HackerRank:)