Python随记(10) os.path pickle模块 运用递归找子目录的文件
2020-03-29 19:43
1321 查看
os.path模块
函数 | 食用方法 |
---|---|
basename(path) | 去掉目录路径,单独返回文件名 |
dirname(path) | 去掉文件名,大怒返回目录文件 |
join(path1,path2…) | 将path1 path2组合成一个路径名 |
split(path) | 分割文件名和路径,返回一个二元组。如果完全是目录,会将最后一个目录作为文件名去分割,而且不会判断文件或目录是否存在 |
splitext(path) | 分离文件名与扩展名,返回二元组 |
getsize(file) | 返回指定文件的尺寸,单位是字节 |
getatime(file) | 返回指定文件最近访问的时间(浮点型秒数,可以用time模块的gmtime()函数换算 |
getctime(fiel) | 返回指定文件的创建时间 |
getmtime(file) | 返回文件最新的修改时间 |
以下函数返回True None
exists(path) | 判断指定路径是否存在 |
---|---|
isabs(path) | 判断指定路径是否时绝对路径 |
isdir(path) | 判断指定路径是否存在切是一个目录 |
isfile(path) | 是否是一个文件 |
islink(path) | 是否是一个符号链接 |
ismount(path) | 是否存在且是一个挂载点 |
samefile(path1,path2) | 判断两个路径是否指向同一个文件 |
还有很多函数的。。。。
运用递归找子目录的文件
import os def search_file(start_dir, target) : os.chdir(start_dir) for each_file in os.listdir(os.curdir) : if each_file == target : print(os.getcwd() + os.sep + each_file) # 使用os.sep是程序更标准 if os.path.isdir(each_file) : search_file(each_file, target) # 递归调用 os.chdir(os.pardir) # 递归调用后切记返回上一层目录 start_dir = input('请输入待查找的初始目录:') target = input('请输入需要查找的目标文件:') search_file(start_dir, target)
一个输入路径,文件名找文件的代码。运用递归去找子目录下的文件。递归调用后记得返回上一层目录
请输入待查找的初始目录:C:\Users\NERO\Desktop\python专用
请输入需要查找的目标文件:123.txt
C:\Users\NERO\Desktop\python专用\123\123.txt
C:\Users\NERO\Desktop\python专用\123.txt
根据上面的可以增加一些功能:
import os def search_file(start_dir,target): os.chdir(start_dir) for each in os.listdir(os.curdir): ext = os.path.splitext(each)[1] if ext in target: filelist.append(os.getcwd()+os.sep+each+'\n') if os.path.isdir(each): search_file(each,target) os.chdir(os.pardir) start_dir=input('输入要找的路径:') list1=input('请输入要找的文件扩展名:') target=list1.split(',') filelist=[] search_file(start_dir,target) f= open(r'C:\Users\NERO\Desktop\python专用\file.txt','r+') f.writelines(filelist) f.close()
查找路径下指定扩展名的文件,并保存到file.txt这个文件中。。。。。(.avi啥的)
pickle模块(泡菜)
- 对于普通的文件操作,想要保存列表,字典,类的实例这些复杂的数据类型会很麻烦。pickle模块就可以容易的将复杂的数据类型储存为文件的形式。它可以几乎所有的对象转换成二进制形式存放。
import pickle list1=[123,3.14,'hhh',['aaa','bbb']] file=open(r'路径','wb') pickle.dump(list,file) file.close()
在要使用的时候,用二进制模式打开文件,在用load() 把数据加载进来。
pickle.dump(data, file) # 第一个参数是待存储的数据对象,第二个参数是目标存储的文件对象,注意要先使用’wb’的模式open文件
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Python学习笔记10:标准库之路径和文件(os.path包,glob包)
- Python递归查找文件(os.walk, os.path, fnmatch)
- python递归目录子目录列出目录和文件
- python文件IO,练习运用os.path.exists().
- Python递归查找文件(os.path, fnmatch,glob)
- Python os模块实例之遍历目录及子目录指定扩展名的文件
- 使用python递归子目录处理日志文件
- python基础(10)——文件操作,os模块
- 运用递归 取某个目录下的所有子目录及文件
- Python----os 模块对文件进行操作
- Java-->用递归方法复制目录、子目录以及文件(文件用到IO流)
- python——文件、os模块、异常,连接mysql
- Python基础总结之第九天开始【python之OS模块对目录的操作、以及操作文件】(新手可相互督促)
- python文件路径操作os模块
- Python标准库03 路径与文件 (os.path包, glob包)
- Python-22 文件系统:os模块
- Python学习笔记5(文件操作及os模块)
- linux下为目录和文件设置权限,包括子目录的循环递归设置
- python文件操作及os模块常用命令