python的日期+excel+mysql+sqlAlchemy+mongo+logging
目录
- 日期-天
- 正则-三种
- pandas 生成 excel表
- 引入另一个python文件
- pymysql数据库
- SQLAlchemy
- pymongo
一:日期
from datetime import datetime
from datetime import timedeltacurr_time=datetime.now() # 现在的时间
today=(curr_time.strftime("%Y-%m-%d"))# 调用strftime方法就是对时间进行格式化
yesterday=(curr_time - timedelta(days=1)).strftime("%Y-%m-%d")
tomorrow=(curr_time + timedelta(days=1)).strftime("%Y-%m-%d")
week_ago = (curr_time + timedelta(weeks=1)).strftime("%Y-%m-%d")print("今天日期:",today)
print("昨天日期:",yesterday)
print("明天日期:",tomorrow)
print("下周日期:",week_ago)
二:正则
1:三种
# 正则
# 匹配,不存在为none
a_pipei = re.match(r'^ab','abdhfikre')[0]
a_pipein_null = re.match(r'^ab','11abdhfikre')a_fidall = re.findall(r'/(\d+).htm','baidu/12344.htm')[0]
# sub替换
a_huan = re.sub(r"(/\d+)",'/naliduo66', 'baidu.com/123/home/456/ll789.html')
2:取值group
text = '<img src="//www.baidu.com/img/flexible/logo/pc/result.png" title="到百度首页">'a = re.match(r'<img src="(\S+)"', text)print(a[0])print(a.group(1)) #只取出url链接,()里面的
三:生成Excel
一:pandas
1:dataframe对象- (列表+表头)
import pandas
stu = [['小A','11','玩'],['小c','22','跑'],['小d','33','跳']]
pf = pandas.DataFrame(stu) #dataframe对象
#表头名称
pf.columns = ['姓名', '年龄', '技能']
# 生成Excel表格
file_path = pandas.ExcelWriter('店铺名称.xlsx')
pf.to_excel(file_path, sheet_name='sheet1', encoding='utf-8', index=False)
# 保存表格
file_path.save()
注:
dateFrame是行列对象
pf.columns:列
to_excel:生成excel
index=false :左侧一行索引不显示
2:字典数据
import pandas
student = [{"姓名": "小A", "年龄": "21", "职业": "战士"},]
pf = pandas.DataFrame(student) #dataframe对象
#loc[]添加
pf.loc['5'] = {"姓名": "小方", "年龄": "22", "职业": "辅助"}
pf.loc['6'] = {"姓名": "小lam", "年龄": "33", "职业": "打野"}
# 生成Excel表格
file_path = pandas.ExcelWriter('店铺名称.xlsx')
pf.to_excel(file_path, sheet_name='sheet1', encoding='utf-8', index=False)
# 保存表格
file_path.save()
print(pf.index) #行与列
print(pf.columns)
行与列的结果:
二:xlwt生成Excel (老)
import xlwt
workbook = xlwt.Workbook(encoding='utf-8') #excel对象
worksheet = workbook.add_sheet('sycm1') #创建shee表
worksheet.write(0,0,'hello python') #写入内容
workbook.save('sycm.xls') #保存excel表
四:引入另一个python文件
import sys
sys.path.append(r'D:\g\Spider')
from env import env #env no .py
print(sys.path)
五:mysql数据库
import pymysql#1:连接数据库
conn = pymysql.connect(host='10', user='', password='',database='',port=3306)
biao = conn.cursor() #2:获取游标#一:查询
sql = 'select * from course'
biao.execute(sql) #3:游标查询sql语句
#fetchone(), fetchmany() #4:获取数据!!!!!
data_all = biao.fetchall()
for item in data_all:print(item)
conn.close() #5:连接断开 #二:插入
sql1 = 'insert into course(cid, cname, tid) values("04","历史","04")'
biao.execute(sql1)
conn.commit() #提交更改(增加,修改)
conn.close()
六:SQLAlchemy
一:导入模块
import sqlalchemy
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker
二:连接sql, 建立对象映射
#调用方法
def main():setsql(username='', password='', db_host='10', db_port=3306, db_name='sys', charset='utf8')def setsql(username, password, db_host, db_port, db_name, charset):#sql的地址sql_url = 'mysql+pymysql://{}:{}@{}:{}/{}?charset={}'.format(username, password, db_host, db_port, db_name, charset)engine = sqlalchemy.create_engine(sql_url) #1:链接sqlsession = sessionmaker(bind=engine)() #2:创建session进行增删改查Base = automap_base() #3:两步,表数据与对象映射Base.prepare(engine, reflect=True)table = Base.classes['course'] #4:Base.classes.tablename为表名 # !!表名!!查找的精华 #print(Base.classes.keys()) #所有的表名
三:session
实现增删改查
session.query(table).filter() 查询
session.add() 增加
#1:结果用for遍历 !!!#2:增删改需要session.commit()提交修改#一:查找 query() datalist = session.query(table).order_by(table.tid.desc()).all()for i in datalist:print(i.cid, i.course, i.tid)datalist = session.query(table).filter(table.course=='语文')for i in datalist:print(i.cid, i.course, i.tid)#二:插入数据 add()或add_all([])insertdata = table(cid='05', course='高数',tid='07')session.add(insertdata)session.add(insertdata_22)session.flush() #缓存多个,commit提交一次session.commit()#三:修改数据 update()session.query(table).filter(table.cid=='05').update({'course':'政治'})session.commit()#四:原始sqldata = session.execute('select * from course').fetchall()print(data)#关闭session.close()
七:pyMongo
参考文章:
https://blog.csdn.net/DanielJackZ/article/details/123749384
1:导入模块
import pymongo
2:链接mongo
def setMongo(host, port, username, password):url='mongodb://127.0.0.1:27017'# mongoDB = pymongo.MongoClient(url) #1:链接url(两种)mongoDB = pymongo.MongoClient(host=host, port=port)db = mongoDB['zz_web'] #2:打开数据库if username and password: #3:存在密码db.authenticate(username, password,'admin')collection = db['A.ec'] #4:连接表
3:collection增删改查
①:查询
#!!!用for循环输出结果#1:查询数据result = collection.find({'name':'zhangsan'}).skip(2).limit()result = collection.find({'name':'zhangsan'}).sort('age', pymongo.DESCENDING) #排序result = collection.find({}, {'_id':False}) #不显示_idresult = collection.find({'name':{'$in':['zhangsan','zhaoqian']}}) #筛选result = collection.find({'name':{'$regex':'sa'}}) #包含某个字符串for item in result:print(item)
②:更新数据
#2:插入数据, 一或多
collection.insert_one({'name':'zhaoqian','hobby':'read book'})
collection.insert_many([])#3:更新数据
result = collection.update_many({'name':'wangwu'},{'$set':{'age':10,'look':'sse'}}) #更新属性
result = collection.update_many({'name':'wangwu'},{'$set':{'hobby.city':'北京'}}) #更新下一级#4:删除
result = collection.delete_many({'name':'zhaoqian'})#关闭连接
mongoDB.close()
八:Logging
参考文章:
https://blog.csdn.net/u011412768/article/details/110311835
1:知识
①:debug、info、warning、error、critical
②:logging.StreamHandler : 控制台输出
Logger.addHandler() : 添加对象
③:name 为getLogger(name)
一:settings.py中设置
#settings.py中#控制台输出,日志的级别
LOG_LEVEL ='DEBUG'
#日志保存为文件
LOG_FILE='debug.log'
二:编程
1:导入模块
import logging
2:通过logger、handler和formatter三种组件组合实现log同时打印和保存
def getlog():logger = logging.getLogger('name.log') # 1:创建日志器logger.setLevel(logging.DEBUG) # 2:该日志器的级别及格式f1 = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")#控制台terminal = logging.StreamHandler() # 3:控制台terminal.setFormatter(f1) # 4:内容格式logger.addHandler(terminal) # 5:日志 ,绑定,控制台#保存文件fh = logging.FileHandler("test.log", encoding='utf8')fh.setFormatter(f1)logger.addHandler(fh)return logger
3:测试
if __name__ == '__main__':logger = getlog()# 输出日志try:b = int(input("请输入一个除数:"))logger.info("4/{}={},计算完成".format(b,4/b))logger.debug("goodjoy!")except Exception as error:logger.error(str(error))
控制台及文件的结果:
python的日期+excel+mysql+sqlAlchemy+mongo+logging相关推荐
- python datetime格式转换_分别用Excel和python进行日期格式转换成时间戳格式
最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...
- python to_excel 时间格式_分别用Excel和python进行日期格式转换成时间戳格式
最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...
- python读取数据文件-python多种读写excel等数据文件的方式(收藏篇)
前言: python处理数据文件的途径有很多种,可以操作的文件类型主要包括文本文件(csv.txt.json等).excel文件.数据库文件.api等其他数据文件.下面小编整理下python到底有哪些 ...
- python里读写excel等数据文件的6种常用方式
下面整理下python有哪些方式可以读取数据文件. 1. python内置方法(read.readline.readlines) read() : 一次性读取整个文件内容.推荐使用read(size) ...
- python 连接mysql_Python 连接MySQL
数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储,Hadoop中的Hive组件和数据库在语法上高度相似. 传统运行mys ...
- python时间日期字符串各种
python时间日期字符串各种 python时间日期字符串各种 第一种 字符串转换成各种日期 time 库 # -*- coding: utf-8 -*- import time, datetime ...
- 在python中操作excel
一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表.xlwt(写excel)表.openpyxl(可读写excel表)等.xlrd读数据较大的excel表时效 ...
- python自动汇总excel_RPA手把手:Python轻松实现EXCEL自动化
原标题:RPA手把手:Python轻松实现EXCEL自动化 了解RPA请访问: www.i-search.com.cn 艺赛旗-RPA机器人免费下载: www.i-search.com.cn/inde ...
- python批量导入mysql_用python批量向数据库(MySQL)中导入数据
用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...
最新文章
- 16_python_面向对象
- Windows程序员如何转向Linux开发应用?
- mysql delete返回值_Mybatis执行sql(insert、update、delete)返回值问题
- nssl1176-轨道【数论,Dp】
- 人工智能自拍之后,会怎样给自己P图?
- python中、if语句的下一句一定要缩进吗_【python公开课|Python if else对缩进的要求是什么,想做好python,就一定要看这个文章】- 环球网校...
- ht1621b和单片机电平匹配_基于HT1621B段式液晶模块的驱动应用
- 《统计学习方法》的Python 3.6复现,实测可用
- Android开发笔记(一百六十五)利用红外发射遥控电器
- 拦截Response.Redirect的跳转并转换为Js的跳转
- 使用Javascript在Leetcode中的ACM模式下无法获取输入数据的问题
- centos 6.5 找回root密码的方法
- 对C语言指针的学习与理解
- 【总结】学了不少自然语言处理的理论知识,如何通过实战进一步提高能力?...
- SaaS模式、技术与案例详解——第17章 案例详解
- STFT filter bank
- win10 oracle怎样卸载,怎么完全卸载Oracle?(Win10) 以Oracle 11g为例
- UUID太长怎么办?快来试试NanoId(Java版本)
- DRF-视图类APIView与GenericAPIView
- 在JSF中应用javascript(关于jsf的action与js的问题)
热门文章
- 中山大学计算机pK国防科技大学,请问读中山大学好还是读国防科技大学好
- Java 2022圣诞树+2023元旦倒计时打包一起领走
- 中山大学计算机学院官网万海,万海:《计算机网络》课程研修班报告 - 中山大学信息科学与技术学院.doc...
- 一分钟攻破ADSL 盗遍宽带密码(转)
- redhat 离线安装 docker
- win7 远程桌面的多用户连接破解
- CenterLoss原理详解(通透)
- 解决在ROS系统下录制Ti毫米波雷达点云数据,并转换成pcd文件时间戳为零的问题
- 三国志11pk内存修改
- libx264编码过程中修改码率踩坑记录