1、python2.x和python3.x变化很大,注意版本号,尤其是需求其他模块的时候,版本匹配要注意,比如xlrd模块下载安装的版本要和python版本一致,在这个问题上耽个了四五个小时
2、目前支持把python3.4打包的好像只有cx_Freeze同样要注意版本号,虽然我的系统是win7 64位的,但是我安装的python确实32位的,所以下载freeze的时候要注意是32位的,这点上耽误了半个小时。
3、发现学习python的人还是很积极热情帮助别人的,在此感谢这几天帮助过我的人,尤其要说,南邮的学生不错。和java比这点上强很多,难道是因为学习java的人太多,导致鱼龙混杂?
4、python的文档很不好用,一般喜欢放在安装目录下,搜索一个类的方法很难找,不过直接可以在pyhon模式命令行下,直接输入 dir("") ,就可以查看String有哪些方法可以用,但是没有方法说明啊啊啊啊。。。。。。
5、具体的怎么样引入xlrd包、怎么样打包,官网都有说明,百度也很多,照做就可以了,其实没有那么复杂了,看开了,就没什么难的了
附上这两天的完整代码,从excel读取数据,生成简单的pojo对象属性和方法
import xlrd
import copy
from _io import open
def open_excel(file):
try:
data = xlrd.open_workbook(file)
return data
except Exception as e:
print (e.strerror)
#根据索引获取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的所以 ,by_index:表的索引
def excel_table_byindex(file= 'c:\python\sample.xlsx',colnameindex=0,by_index=0):
data = open_excel(file)
table = data.sheets()[by_index]
nrows = table.nrows #行数
ncols = table.ncols #列数
colnames = table.row_values(colnameindex) #某一行数据
list =[]
propertyList =[]
methodList =[]
# cmt_list=[]
d={"STRING":"String","SWITCH":"String","CODESTRING":"String","DATE":"Date","INT":"int","TIMESTAMP":"Timestamp"}
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
type = row[0]
typeValue = d.get(type)
method = "public "+typeValue
value = row[1]
value = value.lower()
values = value.split("_")
cmt="/**\n*"+row[2]+"\n*/"
# cmt_list.append(row[2])
temp=values[0]
for n in range(1,len(values)):
temp=temp+values[n].capitalize()
s="private "+typeValue+" "+temp+";"
propertyList.append(cmt+"\n"+s+"\n")
method = method+" get"+temp.capitalize()+"(){\n\t"+"return "+ temp+";\n}\n\n"+"public void set"+temp.capitalize()+"("+typeValue+" "+temp+"){\n\t this."+temp+"="+temp+"\n}\n"
methodList.append(method)
#copy.copy(propertyList);
propertyList.extend(methodList)
return propertyList
#根据名称获取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的所以 ,by_name:Sheet1名称
def excel_table_byname(file= 'C:\python\sample.xlsx',colnameindex=0,by_name=u'Sheet1'):
data = open_excel(file)
table = data.sheet_by_name(by_name)
nrows = table.nrows #行数
colnames = table.row_values(colnameindex) #某一行数据
list =[]
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
def writeTxt(line):
# f=open("E:\python\bean.txt", mode='a',buffer)
f= open("C:\\python\\bean.txt", mode='a', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
try:
f.write(line)
f.write("\n")
finally:
f.close()
def main():
tables = excel_table_byindex()
for row in tables:
print(row)
writeTxt(row)
if __name__=="__main__":
main()