python基础之模块(time,datetime,os,random)

模块

模块是什么?

我们说一个函数就是一个功能,那么把一些常用的函数放在一个py文件中,这个文件就称之为模块,模块,就是一些列常用功能的集合体。

为什么要使用模块?
  1. 开发效率高,减少重复代码
  2. 拿来主义

人们常说的脚本是什么?

脚本就是一个python文件

模块的分类

1.内置模块

2.第三方模块

3.自定义模块

import

第一次导入模块执行三件事

1.创建一个以模块名命名的名称空间。

2.执行这个名称空间(即导入的模块)里面的代码。

3.通过模块名来使用模块中的功能

导入多个模块
import os,sys,json   # 这样写可以但是不推荐

推荐写法

import os
import sys
import json

多行导入:易于阅读 易于编辑 易于搜索 易于维护。

from ... import ...

import 和from 的对比:

import 全部导入

from 指定功能导入

from可以一行导入多个功能

from json import dumps,loads,load,dump
导入顺序

模块的查找顺序

内存中已经加载的模块->内置模块->sys.path路径中包含的模块

time模块

时间分类:
1.时间戳     --- 用于计算的
2.结构化时间 --- 给程序员查看使用 (命名元组)
3.字符串时间 --- 给用户查看的
t = time.time()   当前时间的时间戳
print(time.localtime(t))   # 将时间戳转成结构化时间
print(time.localtime()     # 将时间戳转成结构化时间,不写默认是当前时间戳
print(time.mktime(t))    # 将结构化时间转成时间戳
t = time.localtime()
print(time.strftime("%y-%m-%d %H:%m:%S",t))  #将结构化时间转换成字符串时间
str_time = "2019-9-1 12:23:06"
print(time.strptime(str_time,"%Y-%m-%d %H:%M:%S")) # 将字符串时间转换成结构化时间
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
str_time = "2019-9-1 12:23:06"
print(time.mktime(time.strptime(str_time,"%Y-%m-%d %H:%M:%S")))
time模块还有个常用的功能休眠
time.sleep(5)  5就是5秒,秒为单位

如果想将字符串时间转化为时间戳,或者时间戳变成字符串时间,必须经过结构化时间转换过去。

datetime模块

获取当前日期和时间
from datetime import datetime
print(datetime.now())
'''
结果:2019-12-04 21:07:48.734886
'''
获取指定日期和时间
from datetime import datetime

dt = datetime(2018,5,20,13,14)
print(dt)

'''
结果:2018-05-20 13:14:00
'''
str与datetime的转换

很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

from datetime import datetime

t = datetime.strptime('2018-4-1 00:00','%Y-%m-%d %H:%M')
print(t)
'''
结果: 2018-04-01 00:00:00
'''

# 如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过`strftime()`实现的,同样# 需要一个日期和时间的格式化字符串:

```
from datetime import datetime
now = datetime.now()
print(now.strftime('%a, %b %d %H:%M'))
Mon, May 05 16:28
```
datetime加减

对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+-运算符,不过需要导入timedelta这个类:

from datetime import datetime,timedelta
print(datetime.now() - timedelta(days=123))
print(datetime.now() + timedelta(days=500))
结果:2019-09-21 06:51:41.265362
2021-06-05 06:51:41.265362
指定datetime时间
current_time = datetime.datetime.now()
print(current_time.replace(year=1977))  # 直接调整到1977年
print(current_time.replace(month=1))  # 直接调整到1月份
print(current_time.replace(year=1989,month=4,day=25))  # 1989-04-25 18:49:05.898601

OS模块

os -- 与操作系统做交互的
import os
1.文件:
os.rename("旧名字","新名字")  # 重命名     ***
os.remove("要删除的文件名")   # 删除文件    ***

2.文件夹:
os.makedirs("a/b/c/d/e/f")      # 递归创建文件夹   ***
os.removedirs("a/b/c/d/e/f")    # 递归删除文件夹   ***
os.mkdir("a")                   # 创建文件夹       ***
os.rmdir("a")                   # 删除文件夹       ***
print(os.listdir("C:\Python26视频"))                     # 查看当前路径下所有的文件  ***

3.路径:
print(os.getcwd())   #获取当前工作路径   ***

is 系列
print(os.path.exists("C:\Python_26\day07"))   # 判断路劲是否存在  **
print(os.path.isabs("day07"))       # 如果path是绝对路径,返回True  **
print(os.path.isfile("C:\Python_26\day15\lib.py"))   # 如果()中是一个存在的文件,返回True。否则返回False  ***
print(os.path.isdir("C:\Python_26\day15"))  # 如果path是一个存在的目录,则返回True。否则返回False  ***

重要:
print(os.path.join("C:\\User",'Python_26',"day15","lib.py"))  # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 ***
print(os.path.getsize("C:\Python_26\day15\lib.py")) # 获取文件大小 ***

4.其他:
print(os.popen("dir").read())  # 给终端发送指令 **
print(os.environ)  # 获取环境变量

必会:
os.getcwd()
os.makedirs()
os.removedirs()
os.mkdir()
os.rmdir()
os.rename()
os.remove()
os.path.abspath()
os.path.dirname()
os.path.basename()
os.path.join()
os.path.isfile()
os.path.isdir()
os.path.getsize()

random 模块

import random
print(random.random())  # 0 ~ 1之间的小数
print(random.randint(1,5))  # 1- 5 之间的整数
print(random.randrange(0,10,2))  # 随机偶数

print(random.choice(lst))    # 从一个可迭代对象中获取一个随机数
print(random.choices(lst,k=5)) # 从一个可迭代对象中获取多个随机数,会出现重复元素
print(random.sample(lst,k=2))    # 从一个可迭代对象中获取多个随机数,不会出现重复元素

lst = [1, 2, 3, 3, 4, 5, 6, 7, 8]
lst.sort()
random.shuffle(lst)     # 洗牌 打乱顺序
print(lst)

使用随机数实现一个5位(字母,数字)的验证码:
random chr() ord()  ascii码表
1.先去查看ascii码表
发现 65 - 90 是大写字母,从65- 90之间随机获取一个数字通过chr方法获取数字对应的内容
发现 97 -122 是小写字母,从97 -122之间随机获取一个数字通过chr方法获取数字对应的内容
2.使用for循环执行5圈,将获取的内容累加起来,最后输出
import random
# 1X3Y3ZX
def make_code(size=7):
    res = ''
    for i in range(size):
        # 循环一次则得到一个随机字符(字母/数字)
        s = chr(random.randint(65, 90))
        num = str(random.randint(0, 9))
        # num = chr(random.randint(97, 122))
        res += random.choice([s, num])
    return res

res=make_code()
print(res)

import  random
print(ord("6"))
ord()必须是字符串形式,查询数字或者字母(字符串形式)在ascill码表中的位置

原文地址:https://www.cnblogs.com/zzsy/p/12229682.html

时间: 2024-10-11 16:22:53

python基础之模块(time,datetime,os,random)的相关文章

自定义模块,time,datetime以及random

自定义模块,time,datetime以及random 1.自定义模块 自定义一个模块 import #导入 (拿工具箱) 模块分类 1.内置模块(标准库) --python解释器自带的.py文件(模块) 2.第三方模块(大神写的) --需要额外下载的(www.pypi.org) 3.自定义模块(自己写的) --不需要额外下载 分模块的好处: 1.避免写重复代码 2.可以多次利用 3.拿来主义(拿来就用) 导入发生的事情: 1.在当前的名称空间开辟一个新的空间 2.将模块中所有的模块执行 3.通

python 基础之 模块

Python 基础之模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 就是一个python文件中定义好了类和方法,实现了一些功能,可以被别的python文件所调用 那么如何使用一个模块呢? 当然是使用import 模块名 这个方式加载一个模块了 ,比如:import time 如果要使用模块中的类,就是: 模块名 点儿 类 比如: import modle.Teacher 那么如果模块中的方法不知道是做什么用的怎么办呢?     两种方法:    

PYTHON基础学习日志DAY5-time &datetime模块

在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同.UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Saving Time)即夏令时.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算

Python高手之路【七】python基础之模块

本节大纲 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 1:模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以

Python自动化 【第五篇】:Python基础-常用模块

目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re正则表达式 1.      模块介绍 1.1    定义 能够实现某个功能的代码集合(本质是py文件)  test.p的模块名是test包的定义:用来从逻辑上组织模块,本质就是一个目录(必须带有一个__init__.py文件) 1.2    导入方法 a) Import module b) Impo

转载:python基础之模块

作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的

【python基础】模块&包

一.模块 1.所谓模块, 就是指封装好一定功能的.py文件.如果想要使用某个模块,直接导入就行了. 2.random.py 模块名就是文件名(不包含后缀) 3.模块名的命名规则,遵循标识符的命名规则.变量,函数名,类名,模块名 二.模块的作用 1.程序开发文件比较大,都放在同一个文件中,管理维护非常不方便.拆成多个模块进行管理,方便维护. 2.模块可以增加程序的复用率. 三.模块的分类 1.程序员封装 2.python自带的模块; random, time, datetime, sys, os.

python之时间模块time & datetime & calendar

一. 简介 python 提供很多方式处理日期与时间,转换日期格式是一个常见的功能. 时间元组:很多python函数用一个元组装起来的9组数字处理时间. 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 本地完整星期名

常用模块(time,os,random,hashlib)

time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型. 格式化的时间字符串(Format String) 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时) 1 import time 2 #--

python基础之模块part1

模块: 模块本质上就是一个Python程序. 所有说是对象的,一定可以通过  对象.方法  来实现某些操作. 模块种类: 内置模块 第三方模块 自定义模块 import在查找模块的顺序:内置模块---->第三方模块---->自定义模块. 后期学习网络编程(socket)跟线程进程(threading processing)的时候其实就是在学习这些模块. time: 在Python中时间也是一个类. 时间有三种类型: 时间戳:时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量