python异常抓取与模块之time,random,os

一、异常抓取

1.1 异常
当执行python代码的时候,发生让python不知的错误时,它都会创建一个异常对象.
而异常抓取就是编写了处理改异常的代码,该程序将继续运行;如果你未对异常进行处理,程序停止,并显示一个traceback,其中包含有关异常的报告。

1.2异常抓取格式

try:
	程序体
except 异常对象: #程序异常时就会运行
	print('') 
else:  #代码正常运行
	print('')

使用异常避免搞崩溃

1.3 例子
第一个异常 读取一个事先没有的file文件
第二个异常 除一个为零的数

import json
#直接运行会报错 抓取这个异常

try:
    with open('file','r',encoding='utf-8') as f:
        tmp = json.load(f)
except FileNotFoundError:
    print('报错了1')
else:
    print('一万行代码')

try:
    a = 1/0
    print(a)
except ZeroDivisionError:
    print('报错了2')
else:
    print('又有一万行代码')

还有可以抓取到异常是啥
# except FileNotFoundError as key:
#     print('%s报错了'%key)
# except ZeroDivisionError as test:
#     # as 之后的值 打印的就是抓取的异常报错
#     print(test)

二、模块

2.1 模块之time
在这之前要知道两个时间
UTC: 世界协调时间(格林威治时间)
UTC -8 = CST —> DST(夏令时)

对于python时间的表达形式:

  1. 时间戳 从1970-01-01(unix诞生时间)
  2. 格式化的字符串(格式可自己定义) 1970-01-01
  3. 元组 (年 月 日 时 分 秒 星期)

形式之间的转换

	时间戳 ----> 字符串 :ctime(seconds)
    时间戳 ----> 元组  :gmtime(seconds)
                        t = time.gmtime(c)
                        print(t)
                        print(t.tm_year)
                        print(t.tm_mon)
                        print(t.tm_sec)

    元组 ----> 时间戳 :print(time.mktime(l))
    元组 ----> 格式化的字符串:print(time.strftime('%Y-%m-%d %X',l))
                            print(time.strftime('%Y-%m-%d %X',t))
                            print(time.strftime('%p',l))

    格式化的字符串 ----> 元组:print(time.strptime('20000101','%Y%m%d'))

详细代码


import time

a = time.time() #当前的时间 时间戳
# c = time.clock() #硬件时间 unix诞生时间 + 8h

# ctime
print(time.ctime()) #当前的时间 字符串
c = time.ctime()
#时间戳转换为 字符串 ctime
print(time.ctime(a))
# print(time.ctime(c))


# gmtime 元组
t = time.gmtime() #世界协调时间
print(t)
#这个元组是time模块里被包装的一个元组 所以有key,value
print(t.tm_year)
print(t.tm_sec)
l = time.localtime()
print(l)  #本地时间
#前后刚好相差8个小时

#时间戳转换为 元组
# print(time.gmtime(a))
# print(time.gmtime(c))


# mktime
# 元组转化为时间戳
print(time.mktime(t))
print(time.mktime(l))


#strftime 打印当前时间为字符串 以自己定的格式
print(time.strftime('%Y-%m-%d %X'))

#元组转化为格式化的字符串:
print(time.strftime('%Y-%m-%d %X',t))
print(time.strftime('%Y-%m-%d %X',l))
print(time.strftime('%p',t))


#strptime
#格式化的字符串转化为元组
print(time.strptime(c))

#也可以自己定义
print(time.strptime('2020-01-01 22:10:22','%Y-%m-%d %X'))

2.2模块之random
andom —— 生成伪随机数,该模块为各种分布实现伪随机数生成器。

import random
a = ['leilei','yunwei','shituo']
b = ('leilei','yunwei','shituo')
c = ['linux','nginx','mysql','php']
print(int(random.random()*100000))

#在指定范围内找随机数
print(random.randint(10000,50000))

#在指定字符串内找随机字符 也可以指定列表,元组
print(random.choice(b))

#返回1,10之间的随机奇数
print(random.randrange(1,10,2))

#在指定的字符串,列表,元组 取指定的几个元素 以列表的形式打印出来
print(random.sample(a,3))

#随机打乱列表的顺序
print(c)
random.shuffle(c)
print(c)

2.3 模块之os


import os

#打印当前工作目录,即当前python脚本工作的目录路径
print(os.getcwd())
# print(os.listdir())
#改变当前目录到哪个目录
os.chdir('F:\pycharm')
print(os.getcwd())
# print(os.listdir())

#返回当前目录 一个 '.'
print(os.curdir)

#创建目录
# os.makedirs('f:\\a')
#递归创建目录
# os.makedirs(r"f:\\c\b\f\d")

#删除目录
# os.removedirs('f:\\a')
#递归删除目录
# os.removedirs(r"f:\\c\b\f\d")

#os.mkdir(r'f:\a\b') 不递归创建
# os.rmdir(r'f:\a\b') 不递归删除

#打印当前目录下的所有文件 以列表的形式打印
print(os.listdir()) 
#目录一遍 文件就变了


常见函数列表
os.sep:取代操作系统特定的路径分隔符
os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。
os.getenv()和os.putenv:分别用来读取和设置环境变量
os.listdir():返回指定目录下的所有文件和目录名
os.remove(file):删除一个文件
os.stat(file):获得文件属性
os.chmod(file):修改文件权限和时间戳
os.mkdir(name):创建目录
os.rmdir(name):删除目录
os.removedirs(r“c:\python”):删除多个目录
os.system():运行shell命令
os.exit():终止当前进程
os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
os.path.split():返回一个路径的目录名和文件名
os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件
os.path.existe():检验给出的路径是否真的存在
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回当前目录('.')
os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是目录,不是目录就返回false
os.path.isfile(name):判断name这个文件是否存在,不存在返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):或得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
os.path.isabs():判断是否为绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名和扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值