# -*- coding: utf-8 -*-
import os
#存放配置文件目录
filePath = os.path.join(os.path.dirname(__file__), 'pyConfig')
#文件名
fileName = "pyInfo.txt"
## 解析Excel
#
## None
class ReadPySlx():
## 初始化
# @parma beginLine 数据从哪一行开始有效
# @parma fileName 目标文件名
## return None
def __init__(self, beginLine, fileName):
self.beginLine = beginLine #正文开始的行数
self.fileName = fileName #文件名
self.headNameList = [] #字段头列表
self.headCnt = 0 #字段头的数量
self.contentDict = {} #最后保存的字典
## 读目标文件
# @parma None Null
## return None
def readFile(self):
tagFile = open(self.fileName, 'rb')
#逐行读文件
for index, lineInfo in enumerate(tagFile):
if len(lineInfo.strip()) <= 0:
break
#不是头文件并且还没到正文
if index < self.beginLine and index != 0:
continue
lineList = lineInfo.strip().split('\t')
lineCnt = len(lineList)
#空行
if lineCnt <= 0:
break
#是字段头
if index == 0:
self.headNameList = lineList
self.headCnt = lineCnt
continue
#字段错误,和字段头不对应
if lineCnt != self.headCnt:
print "##line cnt error, index=%s"%index
break
#添加到字典
self.explainList(lineList)
tagFile.close()
return
## 解析成字典
# @parma lineList 每行字段值的列表
## return None
def explainList(self, lineList):
lineDict = {}
tagLineDict = {}
for i in range(self.headCnt):
lineDict[self.headNameList[i]] = lineList[i]
tagLineDict[lineList[0]] = lineDict
self.contentDict.update(tagLineDict)
return
#------------------------------------------------------------
FilePath = os.path.join(filePath, fileName)
a = ReadPySlx(2, FilePath)
a.readFile()
print a.contentDict
#------------原Excel文件保存为txt-----------------
#playerId addGold addExp
#玩家id 增加金子数 增加经验数
#10000 100 200
#10001 101 201
#10002 102 202
#10003 103 203
#10004 104 204
#10005 105 205
#10006 106 206
#---------------------解析后生成的字典-----------------------------
#{
#'10004': {'playerId': '10004', 'addExp': '204', 'addGold': '104'},
#'10005': {'playerId': '10005', 'addExp': '205', 'addGold': '105'},
#'10006': {'playerId': '10006', 'addExp': '206', 'addGold': '106'},
#'10000': {'playerId': '10000', 'addExp': '200', 'addGold': '100'},
#'10001': {'playerId': '10001', 'addExp': '201', 'addGold': '101'},
#'10002': {'playerId': '10002', 'addExp': '202', 'addGold': '102'},
#'10003': {'playerId': '10003', 'addExp': '203', 'addGold': '103'},
#}