Python文件夹与文件的操作
时间:2022-04-24
本文章向大家介绍Python文件夹与文件的操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近频繁的与文件操作打交道,这块比较弱,在百度上找到一篇比较不错的文章,这是原文的传送门
有关文件夹与文件的查找,删除等功能在os模块中实现,使用时需要导入这个模块:
import os
####一、获取当前目录
s = os.getwd()
s中保存的就是当前的目录(即文件夹) 下面是一个例子:将abc.py放在A文件夹,不管A放置在硬盘的哪个位置,都可以在A文件夹内生成一个新的文件夹。且文件夹的名字跟据时间自动生成:
import os
import time
filder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
os.makedirs(r'%s/%s' % (os.getcwd(),folder))
####二、更改当前目录
os.chdir("C:\123")
将当前目录设置为”C:123”,相当于DOC命令的cd C:123
- 当指定目录不存在时,引发异常。 异常类型: WindowsError ( windows 下)
####三、将一个路径名分解为目录名和文件名两部分
fpath,fname = os.path.split(‘要分割的的路径’)
例如
a,b = os.path.split("c:\123\456\test.txt")
print a
print b
显示:
c:123456
test.txt
####四、分解文件名的扩展名
fpathhandname,fext = os.path.splittext("要分解的路径")
例如:
a,b = os.path.splittext("c:\123\456\text.txt")
print a
print b
显示:
c:123456test
.txt
####五、判断一个路径(目录或文件)是否存在
b = os.path.exists("你要判断的路径")
返回值b: True 或 False
####六、判断一个路径是否是文件
b = os.path.isfile("你要判断的路径")
返回值b : True 或 False
####七、判断一个路径是否是目录
b = os.path.isdir("你要判断的路径")
返回值b: True 或 False
####八、获取某目录中的文件及子目录的列表
L = os.listdir("你要判断的路径")
例如:
L = os.listdir("c:/")
print L
L 是一个列表,这里面既有文件也有子目录
- 获取某指定目录下的所有子目录的列表
def getDirList(p):
p = str(p)
if p == '':
return []
p = p.replace("/","\")
if p[-1] != "\":
p = p + "\"
a = os.listdir(p)
b = [x for x in a if os.path.isdir(p + x)]
return b
print getDirList("C:\")
- 获取指定目录下面的所有文件
def getFileList(p):
p = str(p)
if p = "":
return []
p = p.replace("/","\")
if p[-1] != "\":
p = p+ "\"
####九、创建子目录
os.makedirs(path) #path 是要创建的子目录
例如:
os.makedirs("c:\123\456\789")
调用有可能失败,
- path已经存在时(不管是文件还是文件夹)
- 驱动器不存在
- 磁盘已满
- 磁盘是只读的或者没有权限
####十、删除子目录
os.rmdir(path) #path: 要删除的子目录
产生异常的原因:
- path不存在
- path子目录中有问间或下级子目录
- 没有操作权限或者只读
####十一、删除文件
os.remove(filename) #filename : 要删除的文件
产生异常的原因:
- filename不存在
- 对filename文件,没有操作权限或只读
####十二、文件改名 os.name(oldfilename,newfilename) 产生异常原因:
- oldfilename旧文件名不存在
- newfilename新文件已经存在时,
####十三、用walk遍历指定文件夹
- os.walk()
函数声明: walk(top,topdown=True,onerror=None)
- 参数top表示需要遍历的目录树的路径
- 参数topdown的默认值是”True”,表示首先返回目录树下的文件,然后再遍历目录树的子目录。Topdown的值为“False”时,则表示先遍历目录树的子目录,返回目录下的文件,返回根目录下的文件。
- 参数onerror的默认值是“None”,表示忽略文件遍历时的错误,不为空则提供一个自定义的函数提示错误信息后继续遍历或则抛出异常后终止遍历
- 该函数返回一个元祖,该元组有3个元素,元素分别表示每次遍历路径名,目录列表和文件列表
oswalk()实例:
import os
def VisitDir(path):
for root ,dirs,files in os.walk(path):
for filespath in files:
print os.path.join(root,filespath)
if __name__ == "__main__":
path = "/root"
VisitDir(path)
- os.path.walk()
函数声明: walk(top,func,arg)
- 参数top表示需要遍历的目录树的路径
- 参数func表示回调函数,对遍历路径进行处理。所谓会调函数,是作为某个参数的参数使用,当某个时间触发时,程序将调用定义号的回调函数处理某个任务,会调回调函数必须提供三个参数,第一个为walk()函数的参数tag,第二个参数表示目录列表,第3个参数表示文件列表
- 参数arg是传递给回调参数func的元组,会调函数的一个参数必须是arg,为回调函数提供处理参数,参数arg可以为空。
import os,os.path
def VisitDir(arg,dirname,names):
for filepath in names:
print os.path.join(dirname,filepath)
if __name__ == "__main__":
path = '/home/username'
os.path.walk(path,VisitDir,())
os.path.walk() 与 os.walk() 产生文件名列表并不相同。os.path.walk()产生目录树下的目录径和文件路径,而os.walk()只产生文件路径
下面是自己实现的遍历:
def listdir(leval,path):
for i in os.listdir(path):
print('|-'*(leval + 1) +i)
if os.path.isdir(path+i):
listdir(leval+1,path+i)
path = 'c:' + os.sep+'ant'
print(path+os.sep)
listdir(0,path+os.sep)
- 极客手工:自制51四驱无线遥控小车
- flash:二次贝塞尔曲线应用-生成飞机路径示意图
- 微信小程序重磅功能上线!一键连Wi-Fi/手机变门禁卡
- MySQL下载安装、基本配置、问题处理
- windows下命令行模式中cd命令无效的原因
- 分布式和集群区别?什么是云计算平台?分布式的应用场景?
- 中国移动也要搞自动驾驶,没了SIM卡怎么耍花样?
- python并发编程之多进程理论部分
- 使用concurrent.futures模块并发,实现进程池、线程池
- 人工智能与医疗
- 每周论文清单:知识图谱,文本匹配,图像翻译,视频对象分割
- 进程池、线程池、回调函数
- java学习:weblogic下JNDI及JDBC连接测试(weblogic环境)
- 简单谈谈python的反射机制
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java基础数据类型和引用类型的区别
- 解决Android8.0之后开启service
- 深入理解Java泛型(一.泛型的作用与定义)
- OpenCV与图像处理(九)
- 如何编写高质量的代码
- [数据结构与算法] 哈希表
- [数据结构与算法] 排序算法之直接插入排序与希尔排序
- [数据结构与算法] 排序算法之选择排序和堆排序
- [数据结构与算法] 树结构之二叉树
- [数据结构与算法] 排序算法之归并排序与基数排序
- [数据结构与算法] 邂逅数组与队列
- [数据结构与算法] 邂逅链表
- 【LeetCode每日一题】23. Merge k Sorted Lists
- MyBatis Generator( 逆向工程以及源码分析 )
- 虚拟机(Linux)常用命令