题
当写入到文本文件中,一些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()
不添加任何新行,如果你写的字符串不包含任何\n
s。
但你用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")
不隶属于 StackOverflow