Python__Office
一、输出目录下所有文件及文件夹
-
Python 标准库
-
和操作系统有关的操作
-
有些指令Windows、Mac、Linux通用
- 详情见:https://docs.python.org/zh-cn/3/library/os.html
-
获取Python程序运行路径
-
os.getcwd()
-
import os print(os.getcwd()) # 输出当前程序的子目录
-
-
关于路径中的斜杠(/)和反斜杠(\)
- Windows中采用反斜杠(\)作为分隔符
- Mac和Linux中才会用斜杠(/)作为分隔符
- 因为反斜杠再Python中用于转义,所以变为双反斜杠(\ \)
-
让Python自动处理路径连接
-
os.path.join()
-
import os print(os.path.join('MyProjects','AI')) # windows:'Myprojects\\AI' # Mac、Linux:'Myprojects/AI'
-
-
相对路径
- 如果程序运行在E:\pythonPractice\文件夹下
- 那么这个文件夹中的文件的相对路径可以表示为./practice
-
列出当前程序文件夹下的所有文件和文件夹
-
os.listdir(指定的相对路径或者绝对路径)
-
import os for item in os.listdir(): print(item)
-
-
循环判断是不是文件夹
-
os.path.isdir(要判断的路径)
-
import os files = os.listdir() for file in files: print(file,os.path.isdir(file)) # os.path.isdir(file) = TURE 那么就是文件夹 # os.path.isdir(file) = FALSE 那么就是文件
-
更推荐的方法
-
os.scandir(指定的相对路径或者绝对路径)
-
import os for for file in os.scandir(): print(file.name,file.path,file.is_dir())
- 生成迭代器
-
二、遍历搜索文件及查询文件信息
-
把文件夹内部所有层级中的所有文件找出来
-
os.walk(绝对路径或指定路径)
-
import os for dirpath,dirnames,files in os.walk('./'): print(f'发现文件夹:{dirpath}') print(files) # dirpath是文件夹路径 # dirnames是dirpath这个文件夹下的子文件夹列表 # files是dirpath这个文件夹里的文件列表
-
-
利用字符串内置的方法搜索、匹配文件
-
.startswith() and .endwith()
-
print('abc.txt'.startswith('ab')) print('abc.txt'.endwith('.txt'))
-
字符串A.statrswith(字符串B):字符串A是否以字符串B开头
- 字符串A.endwith(字符串B):字符串A是否以字符串B结尾
-
-
利用glob模块的方法搜索、匹配文件
-
glob.glob()
-
import glob print(glob.glob('*.py')) # *表示任意字符
-
模式 意义 * 匹配所有 ? 匹配任何单个字符 [seq] 匹配seq中的任何字符 [!seq] 匹配任何不在seq中的字符 -
把深层的文件找出来
-
print(glob.glob('**/*.txt',recursive = True)) # **表示任意层文件或文件夹 # recursive = True会不断进入文件夹内
-
-
利用fnmatch模块匹配文件名
-
import fnmatch print(fnmatch.fnmatch('lesson1.py','le*1.py')) print(fnamtch.fnmatch('lesson1.py','le*[0-9].py')) #前面的文件名是否符合后面的规则,返回TRUE或FALSE
-
-
查询文件信息
-
os.scandir()返回的文件都可以查询信息
-
import os for file in os.scandir(): print(file.stat())
-
name meaning st_size 文件的体积大小(单位:bytes),除以1024就是kb st_atime(access) 文件最近访问的时间 st_mtime(modify) 文件最近修改的时间 st_ctime(create) Windows下表示的创建时间 st_birthtime Mac、Linux下的创建时间
-
-
Unix时间戳
-
前面的时间是一个长的字符串,这种时间叫做时间戳
-
可以利用Python转换为正常的日期时间
-
import time print(time.ctime(srting_num))
-
datetime模块
-
import datetime that_time = datetime.datetime.fromtimestamp(srting_num) print(that_time) print(that_time.hour,that_time.minute,that_time.second)
-
datetime模块转换时间
-
for file in so.scandir(): filr_mtime = file.stat().st_mtime print(datatime.datetime.fromtimestamp(file_mtime))
-
单独查询制定文件
-
os.stat(指定文件路径)
-
print(os.stat('lesson.py'))
-