Python解析字符串
来源:互联网 发布:手机遥控麻将机软件 编辑:程序博客网 时间:2024/06/05 19:21
1.简介
用命令行的方式获取到主机性能(比如磁盘使用率,CPU和内存使用率等)的字符串,如果要分析或者入库的话必须对其进行解析,使其可以已合适的方式展现。
用自己的实际经验给大家提供一个简单的解析函数作为参考,还望各位批评指正。
2.函数
先上代码:
#/usr/bin/env python#encoding=utf-8#ZPFclass Storage(dict): """ Storage就是把python字典的get set方法打包,酱紫用起来比较方便 >>> o = storage(a=1) >>> o.a 1 >>> o['a'] 1 >>> o.a = 2 >>> o['a'] 2 """ def __getattr__(self, key): try: return self[key] except KeyError as k: raise AttributeError(k) def __setattr__(self, key, value): self[key] = value def __delattr__(self, key): try: del self[key] except KeyError as k: raise AttributeError(k) def __repr__(self): return '<Storage ' + dict.__repr__(self) + '>'storage = Storagedef analyzeStr(str, title_list, start, end=None): ''' 解析获取到的字符串 str需要解析的数据,title_list指定切片对应的列名 start 开始行,一般会自己带一列标题 , 那么要从1行开始 end 一些末尾会有多余的空行,需要抛弃 ''' title_len = len(title_list) li = str.split('\n') #按换行符分割 li = li[start:end] #切片,切掉不需要的头和尾 li = [i.split() for i in li] #按空格分割,分割成小列表 table = [] for i in li: d = storage() #根据storage的定义知,这里用d = {}也是可以的。 for n, v in enumerate(i): if n >= title_len: d[title_list[title_len - 1]] += ' ' + v else: d[title_list[n]] = v table.append(d) return table上述先定义一个用于存储的类Storage(),方便使用,接着用analyzeStr()函数对得到的字符串进行解析。
3.实例
给出一个解析磁盘使用率的例子,以windows为例:def main(): command = 'wmic logicaldisk get caption, filesystem, size, freespace, drivetype' #获取磁盘使用情况的命令行 re = os.popen(command) rt = re.read() #得到的数据 re.close() win_list = ["Caption", "DriveType", "FileSystem", "FreeSpace", "Size"] table = analyzeStr(rt,win_list,1,-2) #调用解析函数 return tableif __name__ == '__main__': print main()最后得到的数据很容易用于网页显示和存入数据库,我们的目的就达到了。
4.小结
上边的例子是个最简单的解析函数,通用性较强,但是呢具体的问题还需根据需求具体分析,不能生搬硬套哦。 0 0
- Python解析XML字符串
- Python解析XML字符串
- python实现字符串解析
- Python解析字符串
- python解析json字符串
- python解析json字符串
- python解析xml字符串
- Python解析XML字符串
- 强大的python字符串解析
- python中原始字符串解析
- python解析http request字符串
- Python中解析json字符串
- Python-多种分隔符解析字符串
- 使用python解析Json字符串-获取Json字符串关键字
- python 学习笔记(4)解析和字符串处理
- python解析json字符串和json文件的区别
- 【python】解析不规则json文件批量获取指定字符串
- 字符串解析
- administration被禁用了怎样恢复?
- ubuntu安装emacs24+
- SQL2008修改表结构的时候弹出的提示. Saving changes is not permitted.
- Qt:让控件(widgets)内容可以自动 保存/读取 到配置文件(QSettings)中
- 一个免费的私有代码托管
- Python解析字符串
- LeetCode Recover Binary Search Tree
- [leetcode 27] Remove Element
- Android中自定义属性的格式详解
- 您好,2015
- [leetcode 66] Plus One
- 常见进程间通信的方式
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- POJ 2184 Cow Exhibition(DP)