python中文件的读写与打开模式
什么是相对路径?
相对路径就是以当前文件为基准,到目标路径的这一段路,被称作为相对路径
一般以./代表当前路径
一般以. ./代表上一级路径
什么是绝对路径?
绝对路径就是以盘符开始到目标路径
比如C:/路径
代表c盘下面的路径
传统的python读取文件:
变量名 = open("相对路径或绝对路径","r")
但是可能会遇到文件不存在,抛出FileNotFoundError异常,为了防止程序崩溃,我们采用异常处理:
try:
变量名 = open("相对路径或绝对路径", "r")
except:
print("文件不存在")
虽然这个打开文件的程序看起来没问题,但是我们忽略了一个细节,当文件读取后,没有进行关闭,及时关闭文件这是一个好习惯。
解释:当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了,而with语句,会自动调用close()方法。所以,可以用close()函数来关闭文件,也可以采用with语句使代码更加简洁:
第一种方式:
try:
变量名 = open("相对路径或绝对路径", "r")
except:
print("文件不存在")
finally:
变量名.close()
第二种方式:
with open('相对路径或绝对路径','r') as 变量名:
文件的打开模式 | 含义 |
---|---|
‘r’ | 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 |
‘w’ | 覆盖写模式,文件不存在则创建,存在则完全覆盖 |
‘x’ | 创建写模式,文件不存在则创建,存在则返回异常FileExistsError |
‘a’ | 追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
‘b’ | 二进制文件模式 |
‘t’ | 文本文件模式,默认值 |
‘+’ | 与r/w/x/a 一同使用,在原功能基础上增加同时读写功能 |
可以进行随意组合(只列出部分):
“a” 以“追加”模式打开, (从 EOF 开始, 必要时创建新文件)
“a+” 以”读写”模式打开
“ab” 以”二进制 追加”模式打开
“ab+” 以”二进制 读写”模式打开
“w” 以”写”的方式打开
“w+” 以“读写”模式打开
“wb” 以“二进制 写”模式打开
“wb+” 以“二进制 读写”模式打开
“r+” 以”读写”模式打开
“rb” 以”二进制 读”模式打开
“rb+” 以”二进制 读写”模式打开
文件内容的读取方法:
函数名 | 含义 |
---|---|
变量名.readall() | 读取整个文件的内容,返回一个字符串或字节流 |
变量名.read(size) | 从文件中读取整个文件的内容,可选参数size:读取前size长度的字符串或字节流 |
变量名.readline(size) | 从文件中读取一行的内容,可选参数size:读取改行前size长度的字符串或字节流 |
变量名.readlines(hint) | 从文件中读取所有行的内容,以每行为元素形成一个列表,可选参数hint:读取hint行 |
文件内容的写入方法:
方法 | 含义 |
---|---|
变量名.write() | 向文件写入一个字符串或字节流 |
变量名.writelines(lines) | 将一个全为字符串的列表写入文件 |
变量名.seek(offset) | 改变当前文件操作指针的位置,offset值:0-文件开头 1-当前位置 2-文件结尾 |
来一波,推送吧!
群号:781121386
群名:人生苦短,我学编程
欢迎大家加入我们,一起交流技术!!!