使用Python解析简单文本文件

2024-06-09 11:11:53 发布

您现在位置: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不太感兴趣。 提前谢谢!


Tags: 用户程序number方式username机器人sat论坛
3条回答

这不是一个python问题,而是一个regex/string解析问题。。。

每一行都包含昵称、制表符,然后是0,这是正确的吗?

那么它应该简单到:

(假设包含文件中的一行)

nickname = line.split("\t")[0]

考虑使用正则表达式:

import re

pattern = re.compile(r'(.*?)\s+0\s+')
pattern.findall('- Thurman Valsin0190    0       Sat Jan 14, 2012 5:00 pm')[0] 
# - Thurman Valsin0190

为什么不在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

相关问题 更多 >