写代码中遇到的小问题
1、charset 第三方库,用它来检测编码
charset = chardet.detect(data).get('encoding') # 判断读取到文件的编码格式 if charset: filestr = data.decode(charset) # 按照编码格式解码 else: filestr = data.decode()
2、datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
import datetime day = datetime.datetime.now() ddelay = datetime.timedelta(days=1) wdelay = datetime.timedelta(weeks = 5) ydelay = datetime.timedelta(weeks = 56) print(day) print(day - ddelay) # 一天前的时间 print(day + ddelay) # 一天后的时间 print(day - wdelay) # 5 周前 print(day + wdelay) # 5 周后 print(day - ydelay) # 一年前 print(day + ydelay) # 一年后
yestoday = now - timedelta(days=1) tommorow = now + timedelta(days=1) next_year = now + timedelta(days = 365)
3、list嵌套字典的操作
exist_name = my_db(host='192.168.1.40', user='mysql', password='123456', db='mysql', sql='select username from app_myuser;') list_name = [] #将所有的用户名放在一个list中,进行循环判断 for i in range(len(exist_name)): list_name.append(exist_name[i]['username']) if uname in list_name: print('您输入的用户名已存在,请重新输入')
4、使用open打开文件FileNotFoundError: [Errno 2] No such file or directory: 'xxx'
for cur_path,cur_dir,cur_files in os.walk(path):#读取给定路径的目录,子目录和文件
for file in cur_files:
if file.endswith('.txt'):#只判断.txt文件
#if os.path.getsize(file):
with open(file,'rb') as fr
#这行代码的file必须是在当前路径,要是不在当前路径会报错
那么,遍历到不在当前目录的文件时会有标题的错,需要加上文件路径
for cur_path,cur_dir,cur_files in os.walk(path):#读取给定路径的目录,子目录和文件 for file in cur_files: if file.endswith('.txt'):#只判断.txt文件 #if os.path.getsize(file): with open(os.path.join(cur_path,file),'rb') as fr:#直接写file的话,只是在当前目录下找 data = fr.read()
5、操作数据库的时候可以直接从库中对比数据,查找数据是否存在,如下
sql1= 'select username from app_myuser where username="%s";'%uname sql2 = 'select username,passwd from app_myuser where username="%s" and passwd ="%s";'%(uname,password) if not my_db(host='192.168.1.40', user='mysql', password='123456', db='mysql',sql=sql1): print('您输入的用户名不存在,请重新输入') else: if my_db(host='192.168.1.40', user='mysql', password='123456', db='mysql',sql=sql2): print('登录成功') else: print('您输入的密码不正确')
注意使用:
- if 语句后面的函数调用参数太多,最好是先调用一下,得到一个返回值
- 函数调用里面的sql参数,不要直接那么写,也要单独定义一个变量,再传入