Python 模块 积累

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 是遍历文件夹的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值