在python中打开文件的方式:
一、使用系统函数open(file,mode,buffering,encoding)
其中file为文件名或文件路径,mode为文件操作方式:一般分为读和写两种,
如果传递的path或filename有误则会报错:FileNotFountError
如果是图片 不能使用默认的读取方式, 应该用mode = ‘rb’
stream = open('test.txt','r',encoding='utf-8')
读取文件时第一个参数file若为文件名,则默认是读取到当前文件夹下的文件,想要读取其他位置的文件则需要指定相应文件的文件路径
print(type(stream))
输出结果:
<class '_io.TextIOWrapper'>
此时读取文件之后返回的结果是_io.TextIOWrapper对象
print(stream.read())
获取_io.TextIOWrapper对象之后 若想要读取文件内容则需要使用read相关的函数
_io.TextIOWrapper对象使用完毕之后要记得调用接口清除
stream.close()
read相关的函数:
read()读取所有内容
readline()每次读取一行
readlines()读取所有的行保存在列表中
readable()判断是否可读的
open函数中的mode:
mode 是 ‘w’ 表示 写操作 每次都会将原来的内容清空
如果是mode = ‘a’ 则是在原有内容上增加新内容
如果open函数中mode是w或者a,则需要使用write相关的函数来往文件中写入内容:
stream = open('test.txt','a',encoding='utf-8')
print(stream.write('文件写入操作')) # write函数会返回写入字符的长度
stream.close()
write相关的函数:
write(内容)
writelines(iterable) writelines函数往文件中写入内容时是没有换行的效果的,但是可以传入列表或字典等可迭代对象
二、with 结合 open 使用
with open(path, mode, encoding)as stream:
使用这种方法打开文件时可以帮我们自动释放资源
mode判断是读文件还是写文件
endocing解码格式 一般为utf-8
实例:复制路径path1上的文件到路径path2
with open(path1,'rb')as stream:
container = stream
with open(path2,'wb')as stream1:
stream1.write(container)
os模块
从_io.TextIOWrapper对象中获取文件路径 stream.name
| 功能 | 函数 |
|---|---|
| 从路径中截取文件名 | path[path.rfind(’\’)+1:] |
| 获取当前文件所在的文件夹的绝对路径 "类似 os.path.dirname(__file__) | os.getcwd() |
| 返回该文件夹中所有文件的文件名,返回值为列表 | os.listdir(path) |
| 删除指定路径的文件夹 只能删除空文件夹 | os.rmdir(path) |
| 根据路径创建文件夹 | os.mkdir(path) |
| 获取当前文件所在的文件夹的绝对路径 | os.path.dirname(__file__) |
| 返回的是一个拼接后的新的路径,在path1的基础上增加了name.xxx | os.path.join(path1, ‘name.xxx’) |
| 判断路径文件是否为文件夹 | os.path.isdir(path) |
| 判断是否为绝对路径 | os.path.isabs(path) |
| 通过相对路径得到绝对路径 | os.path.abspath(filename) |
| 获取当前文件的绝对路径 | os.path.abspath(__file__) |
| 判断路径文件是否为文件 | os.path.isfile(path) |
| 将当前文件的绝对路径 分割成文件目录和文件名 | os.path.split(path) |
| 将当前文件的绝对路径 分割成文件目录、文件名和文件扩展名 | os.path.splitext(path) |
| 获取文件大小 单位是字节 | os.path.getsize(__file__) |
| 将字符串和路径拼接起来 | os.path.join(os.getcwd(), ‘file’, ‘a1.jpg’) |
| 判断路径文件是否存在,存在则返回True否则返回False | os.path.exists(path) |
| os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。 | os.removedirs(path) |
| os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError | os.remove() |
| os.chdir() 方法用于改变当前工作目录到指定的路径。 | os.chdir() |
1725

被折叠的 条评论
为什么被折叠?



