首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清理Python中的一段文本

清理Python中的一段文本
EN

Stack Overflow用户
提问于 2013-02-07 07:46:30
回答 1查看 1.4K关注 0票数 2

我是Python的新手,但我想开始学习,通过为我将使用的特性编写一些脚本来学习。我有一些文本是通过在Team Forress2的控制台中键入"status“而检索到的。我想要实现的是,我想要将下面的文本转换为文本,其中只有STEAM_X:X:XXXXXXXX,这是Steam64 ID。

代码语言:javascript
复制
# userid name                uniqueid            connected ping loss state
#     31 "Atonement -Ai-"    STEAM_0:1:27464943  00:48      103    0 active
#     10 "?loop?"        STEAM_0:0:31072991  40:48       62    0 active
#     11 "爱 -Ai-"          STEAM_0:0:41992530  40:46       68    0 active
#     12 "MrKateUpton -Ai-"  STEAM_0:1:10894538  40:25       81    0 active
#     13 "Tacet -Ai-"        STEAM_0:1:52131782  39:59       83    0 active
#     14 "CottonBonbon-Ai-"  STEAM_0:1:47812003  39:39       51    0 active
#     15 "belt -Ai-"         STEAM_0:1:4941202   38:43      123    0 active
#     16 "boutros :3"        STEAM_0:0:32271324  38:21       65    0 active
#     17 "[tilt] Xikkari"    STEAM_0:1:41148798  38:14       92    0 active
#     24 "ElenaWitch"        STEAM_0:0:17495028  31:30       73    0 active
#     19 "[tilt] Batcan #boutros" STEAM_0:1:41205650 38:10   63    0 active
#     20 "[?l??]whatupmydiggas" STEAM_0:1:50559125 37:58  112    0 active
#     21 "[tilt] musicman"   STEAM_0:1:37758467  37:31       89    0 active
#     22 "Jack Frost"        STEAM_0:0:24206189  37:28       90    0 active
#     28 "[tilt-sub]deaf ears #best safet" STEAM_0:1:29612138 19:05   94    0 active
#     25 "? notez ?ai"    STEAM_0:1:29663879  31:23      113    0 active
#     27 "-Ai- Lord English" STEAM_0:1:44114633  24:08      116    0 active
#     29 "1.prototypes"      STEAM_0:0:42256202  17:41       83    0 active
#     30 "SourceTV  // name for SourceTV" BOT                        active
#     32 "PUT ME IN COACH"   STEAM_0:1:48004781  00:36      173    0 spawning

Python中有没有执行以下算法的内置函数?

代码语言:javascript
复制
For all that is not (!) Steam_X:X:XXXXXXXX, delete/remove.

我已经做了相当多的谷歌搜索,但没有真正具体的。如果有人能让我开始使用一个内置的Python函数,我将非常感激开始编码。

附注:输出将如下所示

代码语言:javascript
复制
STEAM_0:1:27464943
STEAM_0:0:31072991
STEAM_0:1:10894538
etc
etc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 07:52:52

听起来像是一个简单的正则表达式案例。假设它们总是这样的数字:

代码语言:javascript
复制
>>> import re

>>> with open('/tmp/spam.txt') as f:
...   for steam64id in re.findall(r'STEAM_\d:\d:\d+', f.read()):
...     print steam64id
... 
STEAM_0:1:27464943
STEAM_0:0:31072991
STEAM_0:0:41992530
STEAM_0:1:10894538
STEAM_0:1:52131782
STEAM_0:1:47812003
STEAM_0:1:4941202
STEAM_0:0:32271324
STEAM_0:1:41148798
STEAM_0:0:17495028
STEAM_0:1:41205650
STEAM_0:1:50559125
STEAM_0:1:37758467
STEAM_0:0:24206189
STEAM_0:1:29612138
STEAM_0:1:29663879
STEAM_0:1:44114633
STEAM_0:0:42256202
STEAM_0:1:48004781

删除行的常用方法不是从原始文件中删除它们,而是打印出要保留到新文件中的行(然后,如果处理成功,还可以选择将其复制覆盖原始文件)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14741078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档