MD5加密

md5加密是不可逆的

  1. def md5(string,salt=""):
  2. new = str(string) + str(salt)
  3. m = hashlib.md5(new.encode())
  4. return m.hexdigest()

faker模块

  1. import faker
  2. f = faker.Faker(locale='zh_CN')
  3. print(f.name()) #随机姓名
  4. print(f.address()) #随机街道
  5. print(f.city()) #随城市
  6. print(f.chrome()) #随机浏览器
  7. print(f.date_time()) #随机时间
  8. print(f.user_name()) #用户名
  9. print(f.street_address()) #街道
  10. print(f.phone_number()) #手机号
  11. print(f.credit_card_full()) #全的信用卡信息
  12. print(f.credit_card_number()) #信用卡
  13. print(f.free_email()) #邮箱
  14. print(f.ipv4()) #ip地址
  15. print(f.ipv6()) #ip地址
  16. print(f.name_female()) #女名字
  17. print(f.name_male()) #男名字
  18. print(f.ssn()) #身份证号

Excell操作

1.openpyxl 模块

写入操作:

  1. import openpyxl
  2. book = openpyxl.Workbook() # 实例化
  3. # sheet = book.create_sheet("sheet1")#创建一个新的sheet1页
  4. sheet = book.active #获取默认的sheet页
  5. sheet.append(["姓名","性别","身高"])#写一整行
  6. sheet.append(["Sara","Female",160])
  7. sheet.cell(1,1,"Name")#指定写入某个单元格
  8. book.save("info.xlsx")

image.png

读取excell文件内容

  1. book = openpyxl.load_workbook("info.xlsx")
  2. sheet = book.active
  3. # sheet = book["Sheet"] #指定的sheet
  4. print(sheet.max_row) #多少行 # 2
  5. print(sheet.max_column) #多少列 # 3
  6. # 获取所有行的数值
  7. print(list(sheet.values))#[('Name', '性别', '身高'), ('Sara', 'Female', 160)]
  8. # 获取每行的数值
  9. for v in sheet.values:#获取所有行
  10. print(v)
  11. # ('Name', '性别', '身高')
  12. #('Sara', 'Female', 160)
  13. #获取每列数据
  14. for col in sheet.columns:#H获取所有的列
  15. print(col)
  16. (<Cell 'Sheet'.A1>, <Cell 'Sheet'.A2>)
  17. (<Cell 'Sheet'.B1>, <Cell 'Sheet'.B2>)
  18. (<Cell 'Sheet'.C1>, <Cell 'Sheet'.C2>)
  19. # 可以用列表生成式
  20. for col in sheet.columns:#H获取所有的列
  21. # for r in col:
  22. # print(r.value)
  23. col = [r.value for r in col]
  24. print(col)
  25. #['Name', 'Sara']
  26. #['性别', 'Female']
  27. #['身高', 160]
  28. print(sheet.cell(1,1).value)#获取指定单元格的内容

修改操作

  1. import openpyxl
  2. book = openpyxl.load_workbook("info.xlsx")
  3. sheet = book.active
  4. sheet.cell(1,1).value = "name"
  5. sheet.delete_cols(1) #删除指定的列
  6. sheet.delete_rows(1) #删除指定的行
  7. book.save("new_用户.xlsx")

2.xlrd模块

  1. import xlrd
  2. #最多可以读取32000行
  3. book = xlrd.open_workbook("info.xlsx")
  4. # sheet = book.sheet_by_index(0)
  5. sheet = book.sheet_by_name("Sheet")
  6. print(sheet.cell(0,0).value) #获取指定单元格的内容,是从0开始的 Name
  7. print(sheet.nrows) #总共多少行 2
  8. print(sheet.ncols) #总共多少列 3
  9. print(sheet.row_values(0))#指定获取某一行的数据 ['Name', '性别', '身高']
  10. print(sheet.col_values(0))#指定获取某一列的数据 ['Name', 'Sara']
  11. for i in range(sheet.nrows):#获取所有行的数据
  12. print(sheet.row_values(i))
  13. for i in range(sheet.ncols):#获取所有列的数据
  14. print(sheet.col_values(i))

xpingying模块

把汉字转换成拼音,第二个参数表示以什么符号连接拼音,默认是”-“

  1. from xpinyin import Pinyin
  2. p = Pinyin()
  3. ret = p.get_pinyin("萧萧") # xiao-xiao
  4. ret = p.get_pinyin("萧萧","+") # xiao+xiao
  5. print(ret)

练习:汉字转拼音,并标注重复姓名出现的次数,写入excel中

  1. s="""
  2. 廖娟
  3. 赵兰英
  4. 罗淑英
  5. 袁玉华
  6. 李艳
  7. 李燕
  8. 李岩
  9. """
  10. import openpyxl
  11. name_dict = {}
  12. names = s.split()
  13. book = openpyxl.Workbook()
  14. sheet = book.active
  15. sheet.append(["姓名","账号"])
  16. for name in names:
  17. pinyin = p.get_pinyin(name,'')
  18. if pinyin not in name_dict:
  19. name_dict[pinyin] = 1
  20. else:
  21. name_dict[pinyin]+=1
  22. pinyin_count = name_dict[pinyin]
  23. if pinyin_count!=1:
  24. pinyin = "%s%s" % (pinyin,pinyin_count-1)
  25. sheet.append([name,pinyin])
  26. book.save("用户.xlsx")

image.png

练习:给账号加上状态

  1. import openpyxl
  2. book = openpyxl.load_workbook("用户.xlsx")
  3. sheet = book.active
  4. for index,value in enumerate(sheet.values):
  5. if index==0:
  6. continue
  7. if index % 2 ==0:
  8. status = "未添加"
  9. else:
  10. status = "已添加"
  11. sheet.cell(index+1,3).value = status
  12. book.save("new_用户.xlsx")

image.png

mysql数据库操作

  1. import pymysql
  2. mysql_info = {
  3. "host":"**.**.**.**",
  4. "user":"root",
  5. "passwd":"123456",
  6. "db":"test",
  7. "port":3306,
  8. "charset":"utf8",
  9. "autocommit":True
  10. }
  11. def execute_sql(sql,all=True,cur_type=1):
  12. #cur_type如果是1,那么返回的是list
  13. #如果是2,那么返回的字典
  14. connect = pymysql.connect(**mysql_info)
  15. cur = connect.cursor() if cur_type == 1 else connect.cursor(pymysql.cursors.DictCursor)
  16. cur.execute(sql)
  17. if all:
  18. result = cur.fetchall()
  19. else:
  20. result = cur.fetchone()
  21. cur.close()
  22. connect.close()
  23. return result
  24. ret = execute_sql("SELECT * FROM `faker_user`;",False,2)
  25. print(ret)
  26. # {'uid': 1, 'username': '阚淑华', 'password': '5f2CmolKhV', 'address': '北京市丹丹县高港胡街H座 164242', 'email': 'taotang@example.com'}