Python重定向/写输出到文件?

时间:2016-02-08 18:00:49

标签: python python-2.7

我想写输出将输出写入文件中,但即使对于带有同义词的单词,我得到的只是“无”。

注意:当我没有在文件中写入输出时它完全正常工作另外注意:无论我是否写入文件,屏幕上都会显示输出,但我在文件中显示“无”,是无论如何要解决它。 [即时使用python V2.7 Mac版]

file=open("INPUT.txt","w") #opening a file
for xxx in Diacritics:
    print xxx
    synsets = wn.get_synsetids_from_word(xxx) or []
    for s in synsets:
          file.write(str(wn._items[s].describe()))

2 个答案:

答案 0 :(得分:1)

我尝试简化问题并重写您的代码,以便它能够运行并最终修改,如果这是您的代码问题,那么它是一个独立的测试。

test = "Is this a real life? Is this fantasy? Caught in a test slide..."
with open('test.txt', 'w') as f:
    for word in test.split():
        f.write(word) # test.txt output: Isthisareallife?Isthisfantasy?Caughtinatestslide...

一个旁注,它几乎听起来像你想要追加而不是截断,但我不确定,所以看看this

  

最常用的模式值是' r'阅读,' w'用于写入(截断文件,如果它已经存在),以及' a' for appending(在某些Unix系统上意味着所有写入都附加到文件的末尾,而不管当前的搜索位置如何)。如果省略mode,则默认为' r'。默认设置是使用文字模式,可以转换' \ n'在写作和回读时的字符特定表示。因此,在打开二进制文件时,您应该附加' b'到模式值以二进制模式打开文件,这将提高可移植性。 (附加' b'即使在不以不同方式处理二进制文件和文本文件的系统上也很有用,它可用作文档。)请参阅下文了解更多可能的模式值。

答案 1 :(得分:1)

file.write()将写入describe()命令返回的任何内容。因为'无'正在编写,并且因为输出总是进入屏幕,问题是describe正在直接写入屏幕(可能是print)并返回None

除了describe之外,您还需要使用其他一些方法,或者提供正确的参数来让它返回字符串而不是打印它们,或者提交错误报告。 (我不熟悉那个包,所以我不知道哪个是正确的行动方案。)