Python学习汇总-03

Python学习汇总-01
Python学习汇总-02
Python学习汇总-03


2.23、日期和时间

日期和时间
datetime模块为日期和时间处理同时提供了简单和复杂的方法。
支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。

该模块还支持时区处理,Python脚本示例:

>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2021, 4, 1)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'04-01-21. 01 Apr 2021 is a Thursday on the 01 day of April.'

>>> birthday = date(1964, 7, 31)
>>> age = now - birthday
>>> age.days
20698

2.23.1、时间和日期补充

常用时间处理方法,Python脚本示例:

今天 today = datetime.date.today()
昨天 yesterday = today - datetime.timedelta(days=1)
上个月 last_month = today.month - 1 if today.month - 1 else 12
当前时间戳 time_stamp = time.time()
时间戳转datetime datetime.datetime.fromtimestamp(time_stamp)
datetime转时间戳 int(time.mktime(today.timetuple()))
datetime转字符串 today_str = today.strftime("%Y-%m-%d")
字符串转datetime today = datetime.datetime.strptime(today_str, "%Y-%m-%d")
补时差 today + datetime.timedelta(hours=8)

2.23.2、Python 将时间戳转换为指定格式日期

python日历,Python脚本示例:

>>> yy = int(input("输入年份: "))
输入年份: 2021
>>> mm = int(input("输入月份: "))
输入月份: 4
>>> print(calendar.month(yy,mm))
     April 2021
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

2.23.3、Python将时间戳转换为制定格式日期

Python脚本执行过程如下:

>>> import time
#获得当前时间时间戳
>>> now=int(time.time())
>>> now
1617239738
>>> timeArray=time.localtime(now)
>>> timeArray
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=1, tm_hour=9, tm_min=15, tm_sec=38, tm_wday=3, tm_yday=91, tm_isdst=0)
#转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
>>> otherStyleTime=time.strftime("%Y-%m-%d %H:%M:%S",timeArray)
>>> otherStyleTime
'2021-04-01 09:15:38'
>>> print(otherStyleTime)
2021-04-01 09:15:38

2.23.4、打印当前日期

打印当前日期:

print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(int(time.time()))))
2021-04-07 09:34:03

2.23.5、Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

  • Python3 日期和时间
    Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
什么是时间元组?

很多Python函数用一个元组装起来的9组数字处理时间,Python脚本示例:

>>> import time  # 引入time模块
>>> ticks = time.time()
>>> print ("当前时间戳为:", ticks)
当前时间戳为: 1617670488.8659368
>>> localtime = time.localtime(time.time())
>>> print ("本地时间为 :", localtime)
本地时间为 : time.struct_time(tm_year=2021, tm_mon=4, tm_mday=6, tm_hour=8, tm_min=55, tm_sec=49, tm_wday=1, tm_yday=96, tm_isdst=0)

2.23.6、获取格式化的时间

获取格式化的时间,Python脚本示例:

import time
>>> localtime=time.asctime(time.localtime(time.time()))
>>> print(localtime)
Tue Apr  6 15:06:35 2021

2.23.7、格式化日期

格式化日期
我们可以使用 time 模块的 strftime 方法来格式化日期。

Python脚本示例:

time.strftime(format[, t])
import time
# 格式化成2016-03-20 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

2.23.8、python中时间日期格式化符号

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

2.23.9、获取某月日历

2.23.9.1、获取某月日历

Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

>>> import calendar
>>> cal=calendar.month(2021,4)
>>> print(cal)
     April 2021
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
2.23.9.2、推迟调用线程的运行,secs指秒数。
2.23.9.2.1、执行如下Python脚本1:
print ("Start : %s" % time.ctime())
time.sleep( 5 )
print ("End : %s" % time.ctime())
2.23.9.2.2、Python脚本1执行结果:
>>> import time
>>> print ("Start : %s" % time.ctime())
Start : Tue Apr  6 15:13:55 2021
>>> time.sleep( 5 )
>>> print ("End : %s" % time.ctime())
End : Tue Apr  6 15:14:02 2021
2.23.9.2.3、执行如下Python脚本2:
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
time.sleep(5)
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2.23.9.2.4、Python脚本2执行结果:
>>> print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2021-04-06 15:15:55
>>> time.sleep(5)
>>> print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2021-04-06 15:16:00

2.24、Python3 os.path() 模块

Python3 os.path() 模块

比如对 d:/test.txt 目录做如下操作:

os.path.exists(path)
>>> os.path.exists('d:/test.txt')
True
>>> os.path.exists('d:/test1.txt')
False
>>>

os.path.getmtime('d:/test.txt')
1617669888.3362348

2.25、python连接mysql

2.25.1、python连接mysql说明

示例代码:

db=pymysql.connect("localhost","root","1","tzq","UTF-8")
conn = pymysql.connect(host="localhost", user="root",password="1",database="tzq",charset="utf8")

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
#sql = "SELECT * FROM EMPLOYEE \
#       WHERE INCOME > %s" % (1000)

sql = "select SUBSTRING_INDEX(t.dept,'[',1) dept_0 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',1) dept_1 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',2),'/',-1) dept_2 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',3),'/',-1) dept_3 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',-1) dept_4 \
  from t_backup_recover_info t \
 where t.dept is not null"

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
       # 打印结果
      print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
             (fname, lname, age, sex, income ))
except:
   print ("Error: unable to fetch data")

# 关闭数据库连接
db.close()

2.25.2、python使用pymysql驱动连接mysql数据库查询操作

示例代码:

import pymysql
conn = pymysql.connect(host="localhost", user="root",password="1",database="tzq",charset="utf8")
cursor = conn.cursor()
# SQL 查询语句
#sql = "SELECT * FROM EMPLOYEE \
#       WHERE INCOME > %s" % (1000)

sql = "select SUBSTRING_INDEX(t.dept,'[',1) dept_0 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',1) dept_1 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',2),'/',-1) dept_2 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',3),'/',-1) dept_3 \
      ,SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(t.dept,'[',-1),']',1),'/',-1) dept_4 \
  from t_backup_recover_info t \
 where t.dept is not null"

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
       # 打印结果
      print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
             (fname, lname, age, sex, income ))
except:
   print ("Error: unable to fetch data")

执行结果:

10
fname=系统软件支持中心,lname=质量与流程IT管理部,age=信息技术工程部,sex=IT全球运营中心,income=系统软件支持中心
fname=华为技术,lname=null,age=null,sex=null,income=null
fname=华为技术,lname=null,age=null,sex=null,income=null
fname=华为技术,lname=null,age=null,sex=null,income=null
fname=北京华为朗新科技,lname=北京华为朗新科技,age=null,sex=null,income=null
fname=北京华为朗新科技,lname=北京华为朗新科技,age=null,sex=null,income=null
fname=系统软件支持中心,lname=质量与流程IT管理部,age=信息技术工程部,sex=IT全球运营中心,income=系统软件支持中心
fname=系统软件支持中心,lname=质量与流程IT管理部,age=信息技术工程部,sex=IT全球运营中心,income=系统软件支持中心
fname=华为技术,lname=null,age=null,sex=null,income=null
fname=北京华为朗新科技,lname=北京华为朗新科技,age=null,sex=null,income=null
>>> conn.close()
>>> conn.close()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\soft\PyMySQL-master\PyMySQL-master\pymysql\connections.py", line 403, in close
    raise err.Error("Already closed")
pymysql.err.Error: Already closed
>>>

2.26、Python SMTP发送邮件

示例代码:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = 'tttzzzqqq@qq.com'
receivers = ['tttzzzqqq2019@163.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')   # 发送者
message['To'] =  Header("测试", 'utf-8')        # 接收者

subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')

try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print ("邮件发送成功")
except smtplib.SMTPException:
    print ("Error: 无法发送邮件")

2.27、python多线程

  • python多线程,示例代码:
import _thread
import time
 
# 为线程定义一个函数
def print_time( threadName, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
      print ("%s: %s") % ( threadName, time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(int(time.time()))) )

# 创建两个线程
try:
   thread.start_new_thread( print_time, ("Thread-1", 2, ) )
   thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
   print ("Error: unable to start thread")

while 1:
   pass

2.28、Python3 JSON 数据解析

  • Python3 JSON 数据解析
json.dumps(): 对数据进行编码。
json.loads(): 对数据进行解码。

2.29、python连接oracle配置

示例代码:

import cx_Oracle

username = "tzq"
passwd = "1"
host = "127.0.0.1"
port = "1521"
sid = "tzq"
dsn = cx_Oracle.makedsn(host, port, sid)
con = cx_Oracle.connect(username, passwd, dsn)
cursor = con.cursor()
sql = 'SELECT course, score FROM tmp'
cursor.execute(sql)
result = cursor.fetchall()
print ("Total: " + str(cursor.rowcount))
for row in result:
    print(row)
cursor.close()
con.close()

2.30、Python安装requests包需要的依赖包

Python安装requests包需要的依赖包:

--20210427-1651
pip install idna-2.5-py2.py3-none-any.whl
pip install certifi-2020.12.5-py2.py3-none-any.whl
pip install chardet-4.0.0-py2.py3-none-any.whl
pip install urllib3-1.26.4-py2.py3-none-any.whl
pip install requests-2.25.1-py2.py3-none-any.whl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tzq@2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值