汉字转拼音 xpinyin及faker模块函数:

import xpinyin,faker
#    C:\Anaconda3\python -m pip install xxxx   绝对路径安装
# name = '李加强'
# p = xpinyin.Pinyin() #实例化
# py = p.get_pinyin(name,'')
# print(py)
s="""
廖娟
赵兰英
罗淑英
袁玉华
萧秀华
徐磊
宋桂荣
莫瑜
陆帅
王淑兰
魏建华
苏军
王飞
李秀梅
罗秀兰
李波
李艳
李燕
李雁
薛建平
黄成
周旭
季军
杨秀荣
关兰英
伍欣
郑宇
王雷
李娟
雷霞
李艳
徐玉英
仇雪梅
李雷
王洋
李建
孙晶
何飞
孙林
郑玲
王桂香
田强
陈华
吴秀云
董强
阮秀云
王洋
谢秀云
潘玉
邹想
吕秀云
罗荣
杨琴
韩欣
邬秀华
章欣
安军
李林
李萍
王勇
莫艳
余凤兰
吴建军
白晶
张燕
殷晨
朱宇
欧阳艳
范雪
杨建
梁杰
林丹丹
许雪梅
任敏
石娟
龚楠
傅建平
李建
刘娟
陈璐
李欢
朱萍
李凯
王静
胡桂英
陈凤兰
温桂芝
蔡波
蒋林
韦坤
欧莹
黄桂荣
单玲
张荣
艾涛
张博
谢龙
张丽丽
林丽娟
李帅
刘东
刘琴
"""
# 有一批中文名,需要你把它生成账号,但是名字里可能有拼音相同的
# 如果有重复的拼音,那就名字依次+1
name_py_list = [] #存的不重复的
d = {} #存在重复的名字和重复的次数
all_names_list = s.split()
p = xpinyin.Pinyin()
for i in all_names_list:
    name_py = p.get_pinyin(i,'')
    if name_py not in name_py_list:
        name_py_list.append(name_py)
    else:
        if name_py not in d:
            d[name_py] = 1
        else:
            d[name_py] +=1
for name,count in d.items():
    for i in range(1,count+1):
        new_name = '%s%s'%(name,i)
        name_py_list.append(new_name)
print(name_py_list)
print(len(name_py_list))

# name_pinyin_list = [] #存的是不重复的名字拼音
# d = {} #存的是重复的名字和她出现的次数
# all_name_list = s.split() #
# p = xpinyin.Pinyin()
# for name  in all_name_list:
#     name_pinyin = p.get_pinyin(name,'')
#     if name_pinyin not in name_pinyin_list:
#         name_pinyin_list.append(name_pinyin)
#     else:
#         if name_pinyin  not in d:
#             d[name_pinyin] = 1
#         else:
#             d[name_pinyin]+=1
#
# for name,count in d.items():
#     for i in range(1,count+1):  #1,4
#         new_name = "%s%s"%(name,i)
#         name_pinyin_list.append(new_name)
# print(name_pinyin_list)
# print(len(name_pinyin_list))

# https://zhuanlan.zhihu.com/p/87203290
f = faker.Faker(locale='zh_CN')
print(dir(f))
print(f.name())#随机姓名
print(f.address())#随机街道
print(f.city())#随机城市
print(f.chrome())#随机姓名
print(f.date_time())#随机时间
print(f.user_name())#用户名
print(f.street_address())#街道
print(f.phone_number())#手机号
print(f.credit_card_full())#全的信用卡信息
print(f.credit_card_number())#信用卡
print(f.free_email())#邮箱
print(f.ipv4())#ip地址
print(f.ipv6())#ip地址
print(f.name_female())#女名字
print(f.name_male())#男名字
print(f.ssn())#身份证号

 

复制文件shutil模块:

import shutil,sys
# 把password.txt复制到../day4_li/password1.txt 并改名
# old   new
shutil.copy('password.txt','../day4_li/password1.txt')
# 可以不需要指定文件名字../day4_li,复制到目录下
shutil.copy('password.txt','../day4_li/')
# 复制文件,必须给指定文件名字password.txt
shutil.copyfile('password.txt','../day4_li/password.txt')
# 复制文件夹,必须给指定文件夹名字logs1
shutil.copytree('logs','../day4_li/logs1')
# 删除非空文件夹,不能恢复
shutil.rmtree('logs')
# 退出程序
quit()

print(sys.version_info) #获取当前python版本,返回元祖
print(sys.version_info[0]) #获取当前python版本,返回元祖
print(sys.version) #获取当前python版本,返回字符串
print(sys.platform)#获取当前系统类型,返回字符串   mac:darmin    windows:win32  linux:linux
sys.exit() #退出
sys.argv   #用来获取运行python文件的时候传入的参数  list
sys.argv[1]

print(sys.argv)

if len(sys.argv)>1:
    command = sys.argv[1]
    if command == "--help":
        msg= """
        这个程序是用来做自动化测试的
        执行bin目录下的 start.py开始运行自动化测试
        """
        print(msg)
    elif command == "bak":
        print("开始备份")
        shutil.copyfile(sys.argv[0],"%s.bak" %sys.argv[0] )
    else:
        print("传入参数错误,请输入--help查看帮助")
else:
    print("传入参数错误,请输入--help查看帮助")

 

pymysql连接:

import pymysql

ip = '132.140.93.6'
user =  'jxz11'
password = '123456' #密码必须字符串
db = 'jxz11'
port = 3306 #端口号必须int类型
#数据库连接   autocommit=True  自动提交事务
connect = pymysql.connect(host=ip,user=user,password=password,
                          db=db,port=port,autocommit=True,charset='utf8')
#创建游标   pymysql.cursors.DictCursor :指定游标类型,查询返回字典
cursor = connect.cursor(pymysql.cursors.DictCursor)


#insert into fmz (name,phone) values ("周杰伦","3223523");
#update fmz set sex=1 where id =1 ;
#delete from fmz where id =3 ;

# sql = "show tables;"
# sql =  "create table rq (id int primary  key auto_increment,name varchar(50) not null,sex int default 0, phone varchar(11) unique );"
# sql = "insert into fmz (name,phone) values ('lee','139818');"
sql = "select * from fmz;"
cursor.execute(sql) #执行SQL语句
print(cursor.description)#返回表各个字段名、描述

print(cursor.fetchall()) #获取SQL所有结果,始终返回的是一个二维数组
# print(cursor.fetchone())#获取1条
# print(cursor.fetchmany(2))#传几条获取几条
# # connect.commit()#提交
# # connect.rollback()#回滚



#处理数据量大时 循环游标,每次取得是表里面的每一条数据
# for c in cursor:
#     print(c)

cursor.close()#关闭游标
connect.close()#关闭连接

#定义函数调用,,,指定类型dict,str
def op_mysql(mysql_info: dict, sql: str, all=True):  # -> list :#函数返回的list
    connect = pymysql.connect(**mysql_info) #   **mysql_info传字典     *mysql_info传list
    cursor = connect.cursor()
    cursor.execute(sql)
    result = None #方便 result 拿到值
    if sql.strip().lower().startswith("select"):
        if all:
            result = cursor.fetchall()
        else:
            result = cursor.fetchone()
    cursor.close()
    connect.close()
    return result


if __name__ =='__main__':
    mysql_info = {'host':'132.145.93.63','user':'jxz','password':'123456',
                          'db':'jxz','port':'3306','autocommit':'True','charset':'utf8'}
    result = op_mysql(mysql_info,'select * from fmz;')
    print(result)
    result = op_mysql(mysql_info,'select * from fmz where id = 1;',False)
    print(result)

 

excel操作:

import xlwt

book = xlwt.Workbook()
sheet = book.add_sheet("sheet1")
# sheet.write(0,0,"id")
# sheet.write(1,0,"1")
# book.save("test.xls")#结尾用xlsx的话,用office打开有问题,wps打开没问题

title = ["id","name","sex","city"]
students = [
    [1,"曾若天","","北京"],
    [2,"李雪松","","北京"],
    [3,"candy","","深圳"],
    [4,"刘佩","","北京"],
]

students.insert(0,title) #把表头加到第一行
# row = 0 #行号
# for student in students:#控制行
#     col = 0 #列号
#     for value in student:#控制列
#         sheet.write(row, col, value)
#         col +=1
#     row +=1
# book.save("test.xls")

for row,student in enumerate(students):
    for col,value in enumerate(student):
        sheet.write(row, col, value)
book.save("test.xls")

 

加密:

#md5加密不可逆

import hashlib

salt = 'agdshsksaksdjb' #加盐
s = 'lijiaqiang'
l = list(s)
index = len(l) // 2 #获取中间的下标
l.insert(index,salt)#下标处index  插入 salt
after = ''.join(l)

# print(s.encode()) #bytes 字节类型
# m = hashlib.md5(s.encode())
m = hashlib.sha224(s.encode())
m = hashlib.sha256(s.encode())
m = hashlib.sha512(s.encode())
# result = m.hexdigest()
# print(result)

#加密字符串函数
def my_md5(s,salt=''):
    s = str(s)
    new_s = "%s%s"%(s,salt)
    m = hashlib.md5(new_s.encode())
    return m.hexdigest()

#加密文件
with open('xpinyin-0.7.6-py3-none-any.whl','rb') as f:
    m = hashlib.md5(f.read())
    print(m.hexdigest())

 

posted on 2021-05-23 14:41  python测开搬砖人  阅读(93)  评论(0编辑  收藏  举报