我想写输出将输出写入文件中,但即使对于带有同义词的单词,我得到的只是“无”。
注意:当我没有在文件中写入输出时它完全正常工作另外注意:无论我是否写入文件,屏幕上都会显示输出,但我在文件中显示“无”,是无论如何要解决它。 [即时使用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()))
答案 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
之外,您还需要使用其他一些方法,或者提供正确的参数来让它返回字符串而不是打印它们,或者提交错误报告。 (我不熟悉那个包,所以我不知道哪个是正确的行动方案。)