如何在python中使用正则表达式提取每行中需要的信息
如题,有"temp.txt"文件,内容如下:218996%S15173928K38024Kfgapp_108com.tencent.qq2189934%S14191436...
如题,有"temp.txt"文件,内容如下:
21899 6% S 15 173928K 38024K fg app_108 com.tencent.qq
21899 34% S 14 191436K 50888K fg app_108 com.tencent.qq
21899 49% S 14 183928K 41584K fg app_108 com.tencent.qq
21899 28% S 15 176984K 40240K fg app_108 com.tencent.qq
21899 6% S 15 177004K 40448K fg app_108 com.tencent.qq
21899 6% S 14 176048K 40564K fg app_108 com.tencent.qq
21899 10% S 14 176196K 40472K fg app_108 com.tencent.qq
21899 9% S 14 176232K 40712K fg app_108 com.tencent.qq
21899 12% S 14 176288K 40820K fg app_108 com.tencent.qq
21899 10% S 14 176288K 40820K fg app_108 com.tencent.qq
21899 12% S 16 179376K 40904K fg app_108 com.tencent.qq
如何提取出每行的百分比数值、两个内存占用值,并存储至'result.csv'中呢?
(如第一行提取“6%”,“173928”,“38024”三个值)
求大神指点!谢谢! 展开
21899 6% S 15 173928K 38024K fg app_108 com.tencent.qq
21899 34% S 14 191436K 50888K fg app_108 com.tencent.qq
21899 49% S 14 183928K 41584K fg app_108 com.tencent.qq
21899 28% S 15 176984K 40240K fg app_108 com.tencent.qq
21899 6% S 15 177004K 40448K fg app_108 com.tencent.qq
21899 6% S 14 176048K 40564K fg app_108 com.tencent.qq
21899 10% S 14 176196K 40472K fg app_108 com.tencent.qq
21899 9% S 14 176232K 40712K fg app_108 com.tencent.qq
21899 12% S 14 176288K 40820K fg app_108 com.tencent.qq
21899 10% S 14 176288K 40820K fg app_108 com.tencent.qq
21899 12% S 16 179376K 40904K fg app_108 com.tencent.qq
如何提取出每行的百分比数值、两个内存占用值,并存储至'result.csv'中呢?
(如第一行提取“6%”,“173928”,“38024”三个值)
求大神指点!谢谢! 展开
展开全部
>>> s='''21899 6% S 15 173928K 38024K fg app_108 com.tencent.qq
21899 34% S 14 191436K 50888K fg app_108 com.tencent.qq
21899 49% S 14 183928K 41584K fg app_108 com.tencent.qq
21899 28% S 15 176984K 40240K fg app_108 com.tencent.qq
21899 6% S 15 177004K 40448K fg app_108 com.tencent.qq
21899 6% S 14 176048K 40564K fg app_108 com.tencent.qq
21899 10% S 14 176196K 40472K fg app_108 com.tencent.qq
21899 9% S 14 176232K 40712K fg app_108 com.tencent.qq
21899 12% S 14 176288K 40820K fg app_108 com.tencent.qq
21899 10% S 14 176288K 40820K fg app_108 com.tencent.qq
21899 12% S 16 179376K 40904K fg app_108 com.tencent.qq'''
>>> open('a.txt','w').write(s)
>>> f=open('a.txt')
>>> f.read()
'21899 6% S 15 173928K 38024K fg app_108 com.tencent.qq\n21899 34% S 14 191436K 50888K fg app_108 com.tencent.qq\n21899 49% S 14 183928K 41584K fg app_108 com.tencent.qq\n21899 28% S 15 176984K 40240K fg app_108 com.tencent.qq\n21899 6% S 15 177004K 40448K fg app_108 com.tencent.qq\n21899 6% S 14 176048K 40564K fg app_108 com.tencent.qq\n21899 10% S 14 176196K 40472K fg app_108 com.tencent.qq\n21899 9% S 14 176232K 40712K fg app_108 com.tencent.qq\n21899 12% S 14 176288K 40820K fg app_108 com.tencent.qq\n21899 10% S 14 176288K 40820K fg app_108 com.tencent.qq\n21899 12% S 16 179376K 40904K fg app_108 com.tencent.qq'
>>> pprint.pprint(map(lambda x:re.findall('\d+? +?(\d+%) +?S +?\d+? +?(\d+K) +?(\d+K)',x),s.split('\n')))
[[('6%', '173928K', '38024K')],
[('34%', '191436K', '50888K')],
[('49%', '183928K', '41584K')],
[('28%', '176984K', '40240K')],
[('6%', '177004K', '40448K')],
[('6%', '176048K', '40564K')],
[('10%', '176196K', '40472K')],
[('9%', '176232K', '40712K')],
[('12%', '176288K', '40820K')],
[('10%', '176288K', '40820K')],
[('12%', '179376K', '40904K')]]
>>> pprint.pprint(map(lambda x:re.findall('\d+? +?(\d+%) +?S +?\d+? +?(\d+K) +?(\d+K)',x),open('a.txt').read().split('\n')))
[[('6%', '173928K', '38024K')],
[('34%', '191436K', '50888K')],
[('49%', '183928K', '41584K')],
[('28%', '176984K', '40240K')],
[('6%', '177004K', '40448K')],
[('6%', '176048K', '40564K')],
[('10%', '176196K', '40472K')],
[('9%', '176232K', '40712K')],
[('12%', '176288K', '40820K')],
[('10%', '176288K', '40820K')],
[('12%', '179376K', '40904K')]]
>>>
展开全部
import re
file_object = open('temp.txt')
try:
str = file_object.read( )
finally:
file_object.close( )
result = re.findall("(\d+%) S\s+\d+ (\d+)K\s+(\d+)K",str)
f = open("test.csv","w")
for line in result:
f.write("%s,%s,%s\n"%(line[0],line[1],line[2]))
f.close()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询