1、文件操作步骤
1、打开文件
2、读写文件
3、关闭文件
写入文件操作:
1、打开文件open()
2、写入内容write()
3、关闭文件close()
读取文件的操作
1、打开文件open()
2、读取内容read()
3、关闭文件close()
2、文件操作的读写
open():打开文件
参数:
-
1、文件路径
-
2、打开方式
w模式:写入,
a、如果不存在,则创建文件,
b、如果文件存在,则打开并清空
c、文件打开后,文件的指针在文件的最前面r模式:读取模式:
a、如果文件不存在,则报错
b、如果文件存在则打开文件
c、文件指针在文件的最前面x模式:xor异或模式:
a、如果文件不存在,则创建这个文件
b、文件已经存在,则报错(防止覆盖)
c、文件的指针在文件的最前面a模式:append追加模式:
a、文件不存在,则创建文件
b、文件如果存在,则打开文件(和w模式的区别,a模式打开后不会清空文件)
c、文件指针在文件的最后面扩展模式:
b b模式,bytes 二进制模式
+ +模式,plus 增强模式(可读可写)
3、字符集:utf-8,如果是二进制不需要设置字符集
w写文件,write()
#w写文件
fp=open('sayhello.txt','w',encoding='utf-8')
#调用write方法写入
fp.write('hello world!')
#关闭文件
fp.close()#创建了sayhello.txt
r:读文件read()
fp=open('sayhello.txt','r',encoding='utf-8')
#调用read方法写入
res=fp.read()
print(res)
#关闭文件
fp.close()
3、文件操作模式的组合
单独写:
w,r,a,x
组合写:
wb,rb、ab、xb
w+,r+,a+、x+
wb+,rb+,ab+,xb+
4、文件操作的高级写法
with open(文件路径,打开模式)as 变量
变量.操作()
以上写法不用写关闭语句
#高级方法进行读和写操作,使用了r+模式
with open('sayhello.txt','r+',encoding='utf-8') as fp:
res=fp.read()
print(res)#hello world!
fp.write(res)#写入后出现不换行hello world!hello world!
r+:可读又可写
w+:可读又可写,打开后是清空文件
a+:可读有可写,追加写,并且可读
x+:异或
5、设置指针当前的位置
seek(number):number为字符偏移数
#设置指针位置
with open('sayhello.txt','r+',encoding='utf-8') as fp:
fp.seek(10)
res=fp.read()
print(res)#d!hello world!
6、文件操作函数
open()打开
write()写入,只能写入字符串
writelines():可以写入容器类型数据,容器中的元素,也必须是字符串类型
read(n)读取,从当前指针位置读取到最后,多字节个数
readline()读取单行
readlines(number)读取多行,每行作为列表的一个元素
close()关闭文件
#设置指针位置
with open('sayhello.txt','r+',encoding='utf-8') as fp:
# res=fp.readline()#只读取一行
# print(res)
# res = fp.read(10) # 读取的字节长度
# print(res)
# res=fp.read()
res=fp.readlines()#一次读取多行数据,每一行作为一个元素,返回一个列表
print(res)#['apache安装完默认是不开启虚拟服务器的,\n', '如果希望在本地apache上面配置虚拟服务器,\n', '类似于在网上买的虚拟主机,\n', '可以按照以下步骤进行配置:']
seek()设置文件指针的位置
truncate()截取文件内容
#设置指针位置
with open('sayhello.txt','r+',encoding='utf-8') as fp:
# fp.seek(33)
# res=fp.read()
# print(res)#['apache安装完默认是不开启虚拟服务器的,\n', '如果希望在本地apache上面配置虚拟服务器,\n', '类似于在网上买的虚拟主机,\n', '可以按照以下步骤进行配置:']
res=fp.truncate(5)#从文件的首行的首个字符开始进行阶段,截断size个字节数,size为0,则截断到最后
print(res)#文件只剩下5个字符了