目录
Python的 文件操作更像C语言,没有Java那般华丽
文件对象
我们使用这个 open()函数可以建立一个物理磁盘文件的连接
比如 下面的 a= open('text.txt','w'),返回一个 file 对象
如果没有文件就创建一个,创建的文件的位置就在我们 打开这个python交互的目录位置
此处是 D:\Apl\python_work\fileop
使用 write() 方法将给这个文件里面写入东西
最后关闭掉连接,写入的缓存就写入到文件里面去了
判断文件是否存在
使用 os模块
os.path.isfile() 来检测输入的文件是否存在
向文件中追加文本 'a'
这个使用的模式 是 'a' , 不是这个'w'了
读取文本文件 'r'
readline方法
该方法从文件中读出一行,如果是第一调用,那么就返回这个文件的第一行
read方法
该方法返回的是文件中没有读取的所有内容,如果一开始对一个文件调用read,那么就把该文件的完整内容作为一个
长字符串返回
一次读取所有行 readlines方法
可以使用 readlines方法一次得到所有的行,返回的是一个 列表 list
此时我们可以循环这个list 逐行获取文件中的内容
删除文件对象
删除对象使用 del 操作符
文件异常 IOError
路径和目录 os 模块
os模块的子模块 os.path 提供了操作路径的函数
1. os.path.join 进行目录拼接
使用 os.path.join 函数可以将目录名称组合为路径,这样可以屏蔽掉操作系统的差异
例如 windows平台上
2. os.path.split 进行目录分割
该函数接收一个路径,然后进行分割,返回一个含有两个元素的元组
第一个元素是 父目录的路径,第二个元素是最后一个路径
如果递归调用这个 os.path.split 的话,可以分解完目录
3. os.path.splitext 分解出文件扩展名
该函数接收一个文件名,返回一个含有两个元素的元组
第一个元素是文件名,第二个元素是文件扩展名
4.绝对路径
os.path.abspath
os.path.normpath
5.判断路径是否存在
os.path.exists(路径)
6.获取目录内容
注意这个使用的是 os.listdir 不是 os.path的使用
使用 os.listdir 来获取指定目录内容 ,类似 dos下的 dir 命令
使用 . 可以列出当前的目录(打开当前python交互环境的目录)
我们可以使用这个命令做一个类似dos的dir命令
7.判断是文件还是目录
os.path.isfile 判断是否为文件
os.path.isdir 判断是否为目录
文件操作
shutil模块
该模块中包含了文件操作的函数
1.重命名
使用 shutil.move(原文件名,新文件名)
2.移动文件
同样使用 shutil.move(文件名,目标目录)
3.复制文件
使用 shutil.copy 可以进行文件的复制
os模块
os模块也有很多操作属性和方法
我们可以使用 dir(os) 查看下
例如:
chdir,chmod,close,cpu_count
curdir 【这是一个属性不是方法,返回.】,
getcwd 这是一个方法返回绝对路径
link,listdir,makedirs,mkdir,name
open,pardir,path,read,readlink
remove,removedirs,rename,renames
rmdir,write 等等
os.rename 重命名
os.rename也有重命名的功效,但是不可以进行文件的移动只能是重命名
而且可能在一些系统上会出现意想不到的事情
os.remove 删除
os.remove(指定的文件)
文件的权限
使用 os.chmod函数进行
和linux上的chmod函数用法相同
创建目录
os.mkdir (目录路径)
该函数要求创建的目录的 父目录必须存在,不存在就会报异常
os.makedirs(目录路径)
该函数允许父目录不存在,如果不存在就创建父目录
删除目录
os.rmdir函数
os.rmdir(指定目录) 可以删除一个目录,但是该目录必须是空目录
shutil.rmtree函数
该函数可以删除指定目录以及该目录下的子目录,是级联删除的。子目录下可以有内容
通配符
glob模块提供了通配符
使用 glob.glob() 函数可以进行通配,结果是一个列表
可以在方括号中匹配任意范围的的字符
例如 [m-p] 匹配 m,n,o,p 中的任意一个字母
[!0-9] 匹配 数字以外的任意字符
路径通配
'*\\*.txt'