从python中的文件中删除单词并逐行打印行

时间:2014-03-23 19:19:16

标签: python string python-2.7

我遇到了一个问题,我可以使用一些帮助。我在python中得到了一个txt文件(大文件),我必须打开并阅读。

之后我需要从文本中删除一些我不需要的名称,链接和内容。

最后我应该逐行打印出一个for循环或类似的东西。

到目前为止我的代码:

import re

tweet = []

with open("englishtweet.txt","r") as infile:
        tweet = infile.readlines()



for line in tweet:
    print line

如果我在文件中显示前两行:

@xirwinshemmo thanks for the follow :)

hii... if u want to make a new friend just add me on facebook! :) xx https:\/\/t.co\/RCYFVrmdDG        

在这里我必须删除所有名称,如:@xirwinshemmo

还需要删除http链接,如:https://t.co/RCYFVrmdDG

之后,我必须创建一个遍历文件中每一行的for循环,以便我可以运行此代码:

for line in tweet:
    if ':)' in line:
        cl.train(line,'happy')

   else if ':(' in line:
        cl.train(line,'sad')

希望有人理解我的问题并为我提供建议。

1 个答案:

答案 0 :(得分:0)

查看我的解决方案。它应该适用于不适合RAM的非常大的文件。它还有单独的正则表列表,因此您可以轻松扩展它:

import re

parts_to_remove = (
    r'@\w+',
    r'https?://[\da-z.-/]+'
)

with open('englishtweet.txt', 'r') as infile:
    for line in infile:

        for part in parts_to_remove:
            re.sub(part, '', line)

        if ':)' in line:
            cl.train(line, 'happy')
        elif ':(' in line:
            cl.train(line, 'sad')