学习两天python后感


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()





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值