当写入到文本文件中,一些file.write实例被随后在输出文件中断行和其他则不是。我的的希望,除非我告诉他们换行发生。代码:

    for doc,wc in wordcounts.items(): 
        out.write(doc)             #this works fine, no linebreak
        for word in wordlist: 
            if word in wc: out.write("\t%d" % wc[word]) #linebreaks appear
            else: out.write("\t0")                      #after each of these
        out.write("\n")        #this line had mixed spaces/tabs

我是什么失踪?

<强>更新

我应该采取从代码如何粘贴到SO一个线索。出于某种原因,存在在最终线空格和制表符的混合物,使得在它的TextMate 目视出现了“字...”环路但解释被处理它作为其一部分外这个循环。将空格转换为制表符解决了这个问题。

感谢您的输入。

有帮助吗?

解决方案

file.write()不添加任何新行,如果你写的字符串不包含任何\ns。

但你用out.write("\n")强制每个字一个换行符在你的单词列表,是你想要的吗?

    for doc,wc in wordcounts.items(): 
        out.write(doc)             #this works fine, no linebreak
        for word in wordlist: 
            if word in wc: out.write("\t%d" % wc[word]) #linebreaks appear
            else: out.write("\t0")                      #after each of these
            out.write("\n") #<--- NEWLINE ON EACH ITERATION!

也许你缩进out.write("\n")太远???

其他提示

您写一个换行符的每一个字后:

for word in wordlist:
    ...
    out.write("\n")

这些是换行,你所看到的,还是有更多的额外的吗?

您可能需要在每个strip()执行wc[word]。从wc打印单个产品可能会是足够的,以确定是否已经有这些项目的该地区造成这种行为换行符。

如果不是这样,你的最终out.write("\n")缩进没有做什么,你打算做的事。

我觉得你的缩进是错误的。

(也我冒昧使你如果子句冗余和代码更易读:)

for doc,wc in wordcounts.items()
   out.write(doc)
   for word in wordlist:
     out.write("\t%d" % wc.get(word,0))
   out.write("\n")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top