我遇到了一个问题,我可以使用一些帮助。我在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')
希望有人理解我的问题并为我提供建议。
答案 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')