Python - 排除空行

时间:2014-05-10 16:11:31

标签: python

这是我的Twitter机器人的代码,它从文本文件中将某些行发送到twitter。 以下代码段应检查该行是空行还是包含内容的行:

...

for line in buff[:]:
        if len(line)<=140 and len(line)>0:
            print ("Tweeting...")
            twitter.update_status(status=line)
            time.sleep(3)
            with open ('liners.txt', 'w') as tweetfile:
                buff.remove(line)
                tweetfile.writelines(buff)
        elif len(line)=0:
            with open ('liners.txt', 'w') as tweetfile:
                buff.remove(line)
                tweetfile.writelines(buff)
            print("Skipped line - Empty line detected")
            continue
        else:
            with open ('liners.txt', 'w') as tweetfile:
                buff.remove(line)
                tweetfile.writelines(buff)
            print ("Skipped line - Char length violation")
            continue 

...

文本文件在每行之间包含换行符,我想知道为什么换行符if块变为true。这里的条件陈述有什么问题?

liners.txt :(第一行是换行符)

  


  诵读困难的恶魔崇拜者把他的灵魂卖给了圣诞老人。

     

你用一块牛排杀死素食吸血鬼。

     

有一个监狱休息时间,我看到一个侏儒爬上围栏。当他跳下来时,他嘲笑我,我想,这有点居高临下。

1 个答案:

答案 0 :(得分:3)

在测试行长度时,换行符仍被视为字符。在检查长度之前,您想要剥离它。从

if len(line)<=140 and len(line)>0:

为:

line = line.strip(r'\n')
if len(line)<=140 and len(line)>0:

事实上,你可以采取真正测试线的额外步骤。一旦你删除了换行符,你就不需要测试长度&gt; 0:

line = line.strip(r'\n')
if line and len(line) <= 140:
...