如何将输出写入文件内部函数?

时间:2018-06-03 22:41:30

标签: python python-2.7 file-io

我想将从下面的函数生成的实时值写入文本文件。我怎样才能做到这一点?

def run(readable_results, data, rawbuf):
    output = open("output.txt", "a", 0)
    if(len(readable_results) > 1 or len(readable_results) == 0):
        output.write('no response')
    elif('weather' in readable_results):
        output.write('weather')
    elif('news' in readable_results):
        output.write('news')
    elif('video' in readable_results):
        output.write('video')

2 个答案:

答案 0 :(得分:1)

我认为你在

中犯了一个简单的逻辑错误
if(len(readable_results) > 1 ... ):

我的意思是,是的。 无论如何,我编写了你的​​代码并给了它一个测试

file = "./output.txt"

def run(readable_results, data, rawbuf):
    output = open(file, "a")
    if(len(readable_results) < 1 or len(readable_results) == 0):  #just flipped the comparison operator
        output.write('no response')
    elif('weather' in readable_results):
        output.write('weather')
    elif('news' in readable_results):
        output.write('news')
    elif('video' in readable_results):
        output.write('video')
    output.write("\n")
    output.close()      # don't forget to close files

run("Hello World! news", 0, 0)

并且它写入文件没有问题(假设文件与.py你正在执行的路径相同)。希望这有帮助

答案 1 :(得分:0)

我没有看到代码有什么问题。也许你应该关闭你工作的文件..... 然后改变..          if(len(readable_results)&gt; 1或len(readable_results)== 0): 至           if(len(readable_results)&lt; 1: