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

我正在尝试运行以下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 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
    环境变量)

  • 或者,您可以直接在python中设置os.environ,例如

    在打开fptr之前,
    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:)