- 本节内容:
- 一.初识文件操作
- 二.文件操作相关函数
- w模式
1:文件不存在,则创建文件
2:文件存在,则打开,并清空文件内容
3:文件打开后,文件的指针在文件的最前面
_#1.打开文件
#创建了一个文件对象
_fp = open(‘./1.txt’,‘w’,encoding=‘utf-8’)
print(fp,type(fp)) - r模式
1:文件不存在,则报错
2:文件存在,则打开,文件的指针在文件的最前面
#1.打开文件
#创建了一个文件对象
_fp = open(‘./1.txt’,‘r’,encoding=‘utf-8’) #如果使用r模式读取一个不存在的文件就会报错
_print(fp,type(fp)) - 三.文件操作高级写法-常用
我想当第一
本节内容:
一.初识文件操作
**针对磁盘中的文件的读写.文件I/O
文件操作步骤: 1.打开文件 2.读写文件 3.关闭文件
就只有这三个步骤,可以用大象装进冰箱来类比,帮助理解
写入文件的操作:(类比大象装进冰箱)
1:打开文件open() ==> 打开冰箱
2:写入内容write() ==> 把大象装进冰箱
3:关闭文件close() ==> 关闭冰箱门
读取文件的操作:(类比取出大象)
1:打开文件open() ==> 打开冰箱
2:写入内容read() ==> 把大象取出
3:关闭文件close() ==> 关闭冰箱门**
二.文件操作相关函数
1.open()打开文件
open(文件路径,打开的方式,字符集)
参数一:文件路径
路径:url
相对路径:就像给别人指路一样:在苏宁广场前面…..
针对文件的相对路径:
./1.txt ==> ./代表当前目录中的1.txt
../1.txt ==> ../代表上一级目录的1.txt
1.txt ==>不写 默认表示是当前目录,等价于 ./1.txt
绝对路径:就像收货地址一样:安徽省宣城市宣州区人民政府….
windows: C:\Windows\1.txt
参数二:打开的方式
基础模式: w r x a
w模式 write 写入模式
1:文件不存在,则创建文件
2:文件存在,则打开,并清空文件内容
3:文件打开后,文件的指针在文件的最前面
r模式 read 读取模式
1:文件不存在,则报错
2:文件存在,则打开,文件的指针在文件的最前面
x模式 xor 异或模式
1:文件不存在则创建
2:文件已存在则报错,防止覆盖
2:文件的指针在最前面
a模式 append 追加模式
1:文件不存在则创建
2:文件如果存在则打开(和w模式的区别:a模式打开不会清空内容)
3:文件的指针在最后
扩展模式:
b模式 bytes 二进制
+模式 plus 增强模式(可读可写)
文件操作模式的组合:
w r a x
wb rb ab xb
w+ r+ a+ x+
wb+ rb+ ab+ xb+
参数三:encoding 可选参数,设置文件的字符集
如果是一个二进制文件时,不需要设置字符集
encoding=’utf-8’
示例如下:
w模式
1:文件不存在,则创建文件
2:文件存在,则打开,并清空文件内容
3:文件打开后,文件的指针在文件的最前面
_#1.打开文件
#创建了一个文件对象
_fp = open(‘./1.txt’,‘w’,encoding=‘utf-8’)
print(fp,type(fp))
_#2.写入内容
#使用文件对象,调用write()方法 写入内容
_fp.write(‘hello world’)
_#3.关闭文件
#使用文件对象,调用close()方法 关闭文件
_fp.close()
r模式
1:文件不存在,则报错
2:文件存在,则打开,文件的指针在文件的最前面
#1.打开文件
#创建了一个文件对象
_fp = open(‘./1.txt’,‘r’,encoding=‘utf-8’) #如果使用r模式读取一个不存在的文件就会报错
_print(fp,type(fp))
_#2.读取内容
#使用文件对象,调用read() 方法
_res = fp.read()
print(res)
_#3.关闭文件
#使用文件对象,调用close()方法 关闭文件
_fp.close()
2.write()写入文件
**write() ==> 文件对象.write(字符串)
writelines() ==> 文件对象.writelines(容器) 注意:容器内必须是字符串类型数据**
示例如下:
###写入相关函数
_vars = ‘iloveyou’
varss = [‘gsw’,‘nb’]
with open(‘./test/1.txt’,‘w’,encoding=‘utf-8’) as fp:
fp.write(vars) #只能写入字符串类型数据
fp.writelines(varss)#可以写入容器类型数据,但容器内必须是字符串类型数据_
3.read()读取文件
read() ==> 文件对象.read() 从当前位置读取到最后
或 文件对象.read(读取的字节数) 可以读取指定长度的字符
readline() ==> 文件对象.readline() 一次只能读取一行内容
readlines() ==> 文件对象.reanlines() 一次读取所有数据,每一行作为一个元素,返回一个列表
示例如下:
##读取相关函数
with open(‘./test/1.txt’,‘r’,encoding=‘utf-8’) as fp:
fp.seek(2) #设置指针的位置
_res = fp.read() #默认从当前指针开始读取到最后
res = fp.read(3) #设置读取字节的长度,中文也算1个长度
res = fp.readline() #一次只读取一行内容
print(res)
res = fp.readline(2) #可以读取当前行指定的字节长度
print(res)
fp.seek(0,2) #把文件指针设置到末尾
res = fp.readlines() #一次读取多行数据,每一行作为一个元素,返回一个列表
_print(res)
4.close()关闭文件
close() ==> 文件对象.close() 关闭打开的文件对象
三.文件操作高级写法-常用
格式 ==> **with **open(文件路径,打开模式) **as **变量:<br /> 变量.操作
# r+ 可读可写
# w+ 可读可写 注意:打开了文件后会清空文件
# a+ 追加写,并且可读
# x+ 异或
#注意:seek(0)可以将指针移到开始的位置
_with open(‘./2.txt’,‘r+’,encoding=‘utf-8’) as fp:
res = fp.read()
print(res)
fp.write(‘你好’)