1. import random 随机数
# -*- coding: UTF-8 -*-
import random
print( random.randint(1,10) ) # 产生 1 到 10 的一个整数型随机数
print( random.random() ) # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) ) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') ) # 从序列中随机选取一个元素
print( random.randrange(1,100,2) ) # 生成从1到100的间隔为2的随机整数
print random.sample('zyxwvutsrqponmlkjihgfedcba',5) # 多个字符中生成指定数量的随机字符:
ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))# 从a-zA-Z0-9生成指定数量的随机字符:
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] # 打乱排序
print random.shuffle(items)
2.os 基础
2.1 目录相关
os.chdir(path) # 改变当前工作目录
os.getcwd() # 目录路径 当前工作目录
os.listdir(path) # 查看内容 相当于 dir
os.mkdir(path[, mode]) # 新建 相当于md
## 一般情况是 先判断 有没有 再新建
if not os.path.exists("新文件夹测试"):
os.mkdir("新文件夹测试")
os.open(file, flags[, mode]) #打开一个文件
2.2 删除
os.rmdir(path) # 删除空文件夹
os.unlink(path) #删除文件路径链接 和文件
os.remove(path) # 删除文件 首选
remove比unlink多了个删除目录的功能,在删除文件时,remove和unlink的功能是一样的==
当remove() 针对目录时,相当于调用rmdir 删除目录,
当remove() 针对文件时,相当于调用unlink 删除文件链接
oos.removedirs(path) # 递归删除 文件夹
2.3 重命名 os.renames(path)
os.rename("/tmp/test/test2","/tmp/test1/test3") # xxx 只能对最后的文件(或文件夹)重命名
os.renames("/tmp/test/test2","/tmp/test1/test3" # √ √ √ 同时对文件和文件夹 重命名
2.4 os.stat(path) #返回读取指定文件的相关属性,利用 stat 模块进行处理。
os.stat(path).st_mtime #創建時間
os.stat(path).st_size #文件尺寸
2.4.1 关于 文件大小 os.stat(path).st_size和 os.path.getsize(path)
如果想达到性能最优,使用 os.stat() 先检查路径是否为文件,再调用 st_size 。
如果想要使用 os.path.getsize() ,则必须提前使用 os.path.isfile() 判断是不是文件,再使用。
os.utime(path, times) #返回 指定的path文件的访问和修改的时间。
2.5 os.path() 模块
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
== # 返回路径==
path=os.path
print(path)
输出 <module ‘ntpath’ from ‘C:\Users\GPCC\AppData\Local\Programs\Python\Python310\lib\ntpath.py’>
os.path.isfile(path) 判断路径是否为文件
os.path.isdir(path) 判断路径是否为目录
2.5.1 分割\组合路径
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径
os.path.split(path) 把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path) 分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path) 把路径分割为加载点与文件
2.5.2 访问时间
os.path.getatime(path) 返回最近访问时间(浮点型秒数)
os.path.getmtime(path) 返回最近文件修改时间
os.path.getctime(path) 返回文件 path 创建时间
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误
2.6 os.shutil 增删改查 (舒特丽)
-
新建
if not os.path.exists("新建文件夹" ): #判断 是否存在 os.mkdir("新建文件夹"")
-
复制
shutil.copy(“文件名”,“目标文件夹/新文件名”)
-
移动
shutil.move("文件名","目标文件夹")
-
删除
shutil.rmtree("文件夹") os.remove("文件夹")
3. golb 遍历文件和文件夹
import glob
import os
print(glob.glob("**")) #当前目录下的 文件和文件夹 不含子目录
print(glob.glob("**/")) # 子目录文件夹
print(glob.glob("**/**")) # 子目录文件和文件
print(glob.glob("**/",recursive=True)) #子目录文件夹 同一列表
print(glob.glob("**",recursive=True)) #当前目录下的 文件和文件夹 + 子目录文件和文件 同一列表
print(glob.glob("**/*.py",recursive=True)) # 当前目录下 名为*.py的文件
print(glob.glob("*/*.py",recursive=True)) # 仅 子文件夹内 名为*.py的文件
4. datetime 日期时间相关
4.1 datetime
print(datetime.datetime.now()) #2021-11-09 08:29:16.506862
print(datetime.datetime.now().date()) #2021-11-09
print(datetime.datetime.now().time()) #08:29:51.379761
print(datetime.datetime.now().day) # 9 year month hour min minute
4.2 时间差
- 两个日期差
path = r"D:\Users\Documents\Downloads"
os.chdir(path)
list = glob.glob("**")
file_dir = []
for file in list :
date = datetime.datetime.fromtimestamp(os.stat(file).st_atime)
day=(datetime.datetime.now() - date).days
print(day)
-
两个日期差
date1=datetime.date(2018,5,6) #日期格式 print(datetime.datetime.now().date()-date1)
-
0000年到今天
print(datetime.date.today().toordinal()) 12254
4.3 时间格式
-
时间格式
t=datetime.date(2018,5,6) print(t.strftime("%y-%m-%d %H:%M:%S")) #18-05-06 00:00:00
5. tempfile 临时文件 增删改查
#--*coding:utf-8*--
from tempfile import TemporaryDirectory,TemporaryFile
#创建 临时文件夹
with TemporaryDirectory() as tenp_dir:
print(tenp_dir)
# 创建临时文件并 读写
with TemporaryFile(mode="w+") as temp_file: #mode="w+b" 是写入二进制,w+ 是写入
temp_file.write("天冷了,你自己照顾自己")
#读出的时候,读文件尾了 ,要调整光标到文本开始位置
temp_file.seek(0)
print(temp_file.read())
6. zip 压缩文件
6.1 新建zip
新建,就是先写个空zip文件,然后追加的方式, 文件夹要 for in
import os
import zipfile
path = "D:\新建文件测试\长期不用文件"
os.chdir(path) # 载入路径
list=os.listdir(path) #得到文件名
for file1 in list:
with zipfile.ZipFile("aa.zip", "a") as zip : #新建件zip 并追加
zip.write(file1) #追加
zip.close()
6.2 读取 zip中的文件夹
print(zip.namelist())
6.3 解压 extract
with zipfile.ZipFile("my.zip","r") as zip:
#解压一个文件,到路径
zip.extract("010 类-引入 基础.py","d:")
#解压全部文件到 当前目录下子目录A
zip.extractall(path="./A")
7. pathlib rgolb 超级历遍
列表=list(目录.rglob(f"*{搜索search}*")) #rglob 是遍历文件夹的
from pathlib import Path
# 检查目录是否存在
while True:
目录=input("输入一个文件夹:")
目录=Path(目录) #Path 对象
if 目录.exists() and 目录.is_dir():# 判断路径是否存在,是否是一个文件夹
break # 满足条件 则跳出循环
else:print("你输入的路径不存在,请重新输入..")
# 要搜索的文件夹或文件名字
搜索search=input("请输入搜索关键字:")
列表=list(目录.rglob(f"*{搜索search}*")) #rglob 是遍历文件夹的