使用Python解析简单文本文件
我是一家论坛的管理员,需要清理注册在论坛上的所有机器人账户。
正如你在下面看到的,我可以通过以下方式列出所有用户:
Username number_of_mssages register_date
举个例子:
- Thurman Valsin0190 0 Sat Jan 14, 2012 5:00 pm
- Rubye Tones01AD 0 Sat Jan 14, 2012 4:59 pm
我需要一个超级简单的Python小程序,能够逐行读取一个文本文件,这样我就可以从上面的字符串中提取出昵称。
- Thurman Valsin0190
- Rubye Tones01AD
这意味着程序需要删除每一行中的“0”以及它后面的所有内容。文本是从一个.txt文件中读取的。
我知道这并不难,但我对Python不是很熟悉。提前谢谢你!
4 个回答
1
为什么不把包含前导空格(或制表符)的0作为分割的关键字,这样可以避免把其他的0也分开呢:
with open("filename.txt", "r") as f:
for line in f:
nick = line.split(" 0 ")[0].strip() # OR .split("\t0\t") if those are tabs
print nick
3
可以考虑使用正则表达式:
import re
pattern = re.compile(r'(.*?)\s+0\s+')
pattern.findall('- Thurman Valsin0190 0 Sat Jan 14, 2012 5:00 pm')[0]
# - Thurman Valsin0190
3
这其实不是一个关于Python的问题,而是关于正则表达式和字符串解析的问题...
可以说每一行都包含一个昵称、一个制表符和一个0吗?
如果是这样的话,那就应该很简单:
(假设line包含文件中的一行)
nickname = line.split("\t")[0]