1.将数据库中表,导入到excel中
1.把每一行的数据,放在字典里了
1 import pymysql,xlwt 2 3 conn=pymysql.connect(host='118.24.3.40',user='jxz',password='123456', 4 port=3306,db='jxz',charset='utf8',autocommit=True) #连接数据库 5 cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #指定游标类型:返回类型为字典(理解为有人帮我们拿东西) 6 cur.execute('select * from app_student limit 10;') 7 print(cur.fetchall()) 8 cur.close() 9 conn.close()
# 运行结果如下: (把每一行的数据,放在字典里了)
1 G:\install_disk\python\python.exe G:/python-DownLoad/练习code/day7/练习.py 2 [{'id': 1, 'age': 28, 'gold': 89188, 'name': '小黑马', 'phone': '18002531114', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 2, 'age': 28, 'gold': 400, 'name': '小黑马', 'phone': '15030682061', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 3, 'age': 28, 'gold': 100, 'name': '小黑马', 'phone': '15030682062', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 4, 'age': 28, 'gold': 100, 'name': '小黑马', 'phone': '15030682063', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 5, 'age': 28, 'gold': 100, 'name': '小黑马', 'phone': '15030682064', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 6, 'age': 28, 'gold': 100, 'name': '小黑马', 'phone': '15030682065', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 7, 'age': 28, 'gold': 2300, 'name': '小黑马', 'phone': '15030682066', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 8, 'age': 28, 'gold': 100, 'name': '小黑马1', 'phone': '13456777723', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 9, 'age': 28, 'gold': 100, 'name': '小黑马1', 'phone': '13456777773', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}, {'id': 10, 'age': 28, 'gold': 100, 'name': '小黑马1', 'phone': '13456772373', 'grade': '天蝎座', 'addr': '河南省济源市北海大道32号', 'sex': '男'}]
2. 导出app_student 数据库中的表到 excel中:
1 import pymysql,xlwt 2 3 conn=pymysql.connect(host='118.24.3.40',user='jxz',password='123456', 4 port=3306,db='jxz',charset='utf8',autocommit=True) #连接数据库 5 # cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #指定游标类型:返回类型为字典(理解为有人帮我们拿东西) 6 cur=conn.cursor() 7 cur.execute('select * from app_student limit 10;') 8 print(cur.description) #表的信息 9 fileds= [filed[0] for filed in cur.description] #列表生成式 (获取所有字段) 10 print(fileds) 11 data=list(cur.fetchall()) #把"元组"转换成"list" 12 data.insert(0,fileds) 13 #insert只会加数据,不会返回结果,所以不能这样写data=list(cur.fetchall()).insert(0.fileds) 14 print(data) 15 book=xlwt.Workbook() 16 sheet=book.add_sheet('sheet1') 17 18 # # #-----------------------第一种方法如下:---比较高端--------------- 19 # for index,line_data in enumerate(data): #【第一行】enumerate自动计算下标(index:下标) 20 # # ###下标0 ['id','name','sex'] 21 # # ### 下标1 [1,xhy,nn] 22 # for index2,col_data in enumerate(line_data): #【列】 23 # # # # 0,id 24 # # # #1,name 25 # # # #2,sex 26 # sheet.write(index,index2,col_data) #往表里写数据 27 # # # # 0,0,id 28 # # #0,1,name 29 # # #0,2,sex 30 31 # #-----------------------第2种方法如下:------------------ 32 line=0 #行号 33 for d in data: #控制 行号 34 #####下标0 ['id','name','sex'] 35 col = 0 # 列 36 for col_data in d: #控制 列 37 sheet.write(line,col,col_data) 38 col+=1 #行不变,每次列加1 39 line+=1 #每行加1 40 #----------------------------- 41 42 43 book.save('xhy.xls') 44 # 1. 一个一个单元格写,先写第一行的每个单元格 45 # 2. 写每一行的时候,行号是不变的,列在变 46 # 3. 嵌套循环 47 48 cur.close() 49 conn.close() 50 51 # for i in range(5): 52 # for j in range(10): 53 # print('hhh')
运行结果如下:
注:其中
fileds= [filed[0] for filed in cur.description] #列表生成式 (获取所有字段)
得到结果为 如下所示第3行:['id', 'name', 'sex', 'age', 'addr', 'grade', 'phone', 'gold']
data=list(cur.fetchall()) #把"元组"转换成"list"
data.insert(0,fileds)
得到结果为 如下所示第4行: 表示在“列表”中第1个元素中增加“所有字段名称”
2.sys模块
-
2.1 sys
2.1.1 导入模块的顺序(跨目录时)
1、当前目录下找这个python文件
2、去python的环境变量里面找这个python文件
2.1.1 导入模块的实质
把这个模块的代码,从头到尾执行一次
1 import sys 2 # print(sys.argv) #运行python文件时,会将传入的参数,都放到这个argv里面 3 4 # 在Terminal中运行: 5 # G:\python-DownLoad\练习code\day7>python 2.sys模块学习.py install hhh 6 # ['2.sys模块学习.py', 'install', 'hhh'] 7 8 9 #python run_case.py aa.xls 10 11 command=sys.argv #它的参数是大于1 12 if len(command)>1: #大于1 表示已传参数 13 exec =command[1] 14 print('用例已运行完成',exec) 15 else: 16 print("运行这个python文件时,需要传入一个用例名称:如:python run_case.py case.xls")
1 G:\install_disk\python\python.exe G:/python-DownLoad/练习code/day7/2.sys模块学习.py 2 运行这个python文件时,需要传入一个用例名称:如:python run_case.py case.xls
-
2. 跨目录导入模块
1 import pymysql 2 3 print('1--pymysql.VERSION',pymysql.VERSION) 4 5 import sys 6 print('2---sys.path',sys.path) 7 8 # 运行结果如下: 9 # ['G:\\python-DownLoad\\练习code\\day7', 'G:\\python-DownLoad\\练习code', 'G:\\install_disk\\python\\python35.zip', 'G:\\install_disk\\python\\DLLs', 'G:\\install_disk\\python\\lib', 'G:\\install_disk\\python', 'G:\\install_disk\\python\\lib\\site-packages', 'G:\\install_disk\\python\\lib\\site-packages\\setuptools-23.0.0-py3.5.egg'] 10 11 # 所有第三方文件都 是安装在这个packages目录下: (环境变量目录) 12 # G:\install_disk\python\Lib\site-packages (将spz.py文件放在这个目录下,它里面内容只有name='水瓶座') 13 14 import spz 15 print('3---spz.name:',spz.name)
1 1--pymysql.VERSION (0, 9, 0, None) 2 2---sys.path ['G:\\python-DownLoad\\练习code\\day7', 'G:\\python-DownLoad\\练习code', 'G:\\python-DownLoad\\练习code\\day7\\my_api', 'G:\\install_disk\\python\\python35.zip', 'G:\\install_disk\\python\\DLLs', 'G:\\install_disk\\python\\lib', 'G:\\install_disk\\python', 'G:\\install_disk\\python\\lib\\site-packages', 'G:\\install_disk\\python\\lib\\site-packages\\setuptools-23.0.0-py3.5.egg'] 3 3---spz.name: 水瓶座
导入模块的实质: 把这个"导入模块"的代码,从头到尾执行一次
3.a.py文件里的内容只有:
1 import b
b.py文件里面的内容如下:
1 print('这是一个b文件') 2 name='hahaha' 3 4 def my(): 5 print('this is jzk') 6 my() 7 print('这是最后一行代码!')
在3.a.py文件中运行结果如下:
1 这是一个b文件 2 this is jzk 3 这是最后一行代码!
另外一种方式如下:
a.py 文件里写 from b import name,my 表示把b文件导入到a文件中,把b文件里name和my方法都拿过来
当代码 中存在 if __name__ == '__main__': 时,不会执行下面的它下面的代码 ,
在a.py文件运行时,它是不会执行if __name__=='__main__'
在b.py文件中运行结果如下:
b.py中运行if __name__=='__main__' 它下面的代码
导入其它目录下的python文件: