#!/usr/bin/env python

#coding=utf-8

#上面来显示中文的。不然中文会出问题

'''

说明:输入的文件,#开头的一行默认是注释符号,这一行不计入处理,其余的都是有效行,有效行遇到#也结束

作者:

最后修改时间:2014-04-22

'''

#import pdb

import fileinput

#pdb.set_trace()

def getName(line):

#找到起始位置,因为格式是name = "A",所以找第一个“

start = line.find('"')

if start == -1:

print 'sorry,your file maybe wrong'

return

#找后一个"的位置,不能直接赋值给end,然后end一个一个自加,因为都是引用,start也会跟着end变化

j = 1

while line[start+j] != '"':

j = j + 1

name = line[start+1:start+j]

return name

def getTabName(line):

#首先找到第一个',',然后回找第一个'/',中间的内容就是B.img,然后取B

end = line.find(',')

if end == -1:

print 'sorry,your file maybe wrong'

return

j = 1

while line[end - j] != '/':

#重新给end赋值,即使A.B.C,最后得到的将是A

if(line[end - j] == '.'):

new_end = end - j

j = j + 1

name = line[end-j+1:new_end]

return name

def compare(names):

for i in range(1,len(names)):

if names[i] != names[0]:

return False

return True

#打印列表

def prin(names):

for name in names:

print name

def do_with_line(config_file):

flag = 0

#名字用列表来存储,第一个是name,后面的是tag一次排序的

names = []

for line in fileinput.input(config_file):

#disk 结束

if line.find(']') == 0:

flag = 0

continue

#处理disk下一行

if flag == 1:

names.append(getTabName(line))

continue

#去掉前后的空格

line = line.rstrip()

#如果是#或者'''开头,直接忽略,因为是注释符号

if line[0] == '#':

continue

#查找name,这个必须在首位,不然认为不是name,name只有一个

if line.find('name') == 0:

name = getName(line)

names.insert(0,name)

#找到disk标志

if line.find('disk') == 0:

flag = 1

continue

return names

if __name__ == '__main__':

config_file = 'xen1.cfg'

names = do_with_line(config_file)

prin(names)

if compare(names) == False:

print 'nonono'

else:

print 'yesyesyes'

以上的格式自己调试一下啦。

python 配置文件解析_python 解析配置文件相关推荐

  1. python配置文件解析_Python中配置文件解析模块-ConfigParser

    Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置). 配置文件的格式是: []包含的叫section, section 下有option=valu ...

  2. python写配置文件方法_Python读写配置文件的方法

    本文实例讲述了Python读写配置文件的方法.分享给大家供大家参考.具体分析如下: python 读写配置文件ConfigParser模块是python自带的读取配置文件的模块.通过他可以方便的读取配 ...

  3. python命令解析_python解析命令行

    可以解析这样的命令 ./cron_ctrl jobname1 --stop ;./cron_ctrl jobname1 --start;./cron_ctrl jobname1 --list #!/u ...

  4. python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决

    python --解析字符串,并返回xml格式字符串 急急急. str = """Registrations: ============================= ...

  5. python pyquery库_python解析HTML之:PyQuery库的介绍与使用

    前言 Python关于爬虫的库挺多的,也各有所长.了解前端的也都知道, jQuery 能够通过选择器精确定位 DOM 树中的目标并进行操作,所以我想如果能用 jQuery 去爬网页那就 cool 了. ...

  6. python xml实例_python解析xml文档实例

    博客已迁移  新地址 打开 ======================= 今天恰好用到,记录一下 使用python 用到的包:xml.dom.minidom 需求: 有一个表,里面数据量比较大,每天 ...

  7. python 报文解析_python解析DNS数据包实例代码

    例子,python解析DNS数据包. 代码示例: ###file QueryDNS.py## -*- coding: utf-8 -*- #Get DNS answer #详情见RFC 1035 im ...

  8. python 邮件解析_Python解析邮件

    邮件的解析是个大课题,远超一般人的预期.它远比发送邮件和接收邮件要复杂的多的多. 这就是为什么网上中文外文搜邮件的问题,绝大多数都是讲发送的而讲接收的很少. 发送邮件好说,接收和下载邮件也好说.关键是 ...

  9. python epub解析_python 解析电子书的信息

    epub 书是可供人们下载的开放性资源格式的电子图书.epub 文件通常与类似亚马逊Kindle 这样的电子阅读器不兼容. 一个epub 文件包含两个文件:一个包含数据的压缩文件(.zip文件)以及一 ...

最新文章

  1. 42所双一流大学校长情况简介(2019年)
  2. 2000万日订单背后:美团外卖客户端高可用建设体系
  3. 深度学习中的batch理解(batch size 一次喂给神经网络的数据大小量)
  4. yii2 basic版 MVC 部分
  5. Mysql Incorrect DATETIME value: ‘01/01/2021 00:00:00‘
  6. DDL、DML、DQL、DCL 理解
  7. 微软云中国策略的下一步:驱动AI生态
  8. mysql同步三张表如何用事务_MySql-第三部分(外键, 多表连接, 事务,视图 )
  9. python读取hive方案分析
  10. 计算机控制技术第二版答案于微波,微波技术基础课后参考答案 (田加胜版)
  11. 哪里可以做TEM/HRTEM/EDS/线扫/Mapping测试、EBSD测试
  12. 甘肃省房屋过户费用计算机,2017二手房过户费计算器
  13. 老板拖欠工资怎么办?
  14. java 回调方法是什么意思_java什么是回调
  15. 讲讲如何将图片格式转化成base64格式的
  16. 换网站服务器需要备案吗,换服务器要重新备案吗?
  17. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程(第二版)》江红 余青松 课后代码题详解...
  18. python怎么设置窗口大小_python – 如何找出所需的窗口大小?
  19. C语言程序设计作业07:第十六周作业
  20. elementui table表格动态生成多级表头

热门文章

  1. Oracle数据库imp
  2. OpenJudge 2803 碎纸机 / Poj 1416 Shredding Company
  3. Win8之开机启动项
  4. 动态切换view视图viewflipper组件
  5. MySQL 的三大引擎:InnoDB、MyISAM和Memory
  6. Share Favorites
  7. Oracle定时调用存储过程
  8. 【原创】MapReduce实战(一)
  9. Maven 打包过滤掉jar包、class文件和指定jsp文件
  10. Spring Rdbms操作(二)——SqlFunction 获取表数据条数