文件操作

文件操作:
打开文件,读写文件,操作文件内容:

写入文件操作:(把大象装进冰箱)
1.打开文件 open() #1.打开冰箱门
2.向文件中添加内容 write() #2.把大象塞进去
3.关闭文件 close() #3.关闭冰箱


读取文件操作:(把大象从冰箱中取出来)
1.打开文件 open() #1.打开冰箱门
2.读取文件内容 read() #2.把大象拿出来
3.关闭文件 close() #3.把冰箱门带上


#逐个介绍文件操作相关的函数

open() 打开或者建立文件
格式:open('文件路径','打开方式',encoding = '设置字符集')

打开方式:
基础模式:
w w模式 write 写入模式
1.文件不存在则新建文件,文件存在则打开并且清空文件
2.文件的指针指向文件的开头

 1 '''
 2 1.打开文件
 3 2.向文件中添加内容
 4 3.关闭文件
 5 '''
 6 
 7 #1.打开文件
 8 fp = open('write.txt','w',encoding = 'utf-8' )
 9 print(fp,type(fp))
10 #输出结果:<_io.TextIOWrapper name='write.txt' mode='w' encoding='utf-8'> <class '_io.TextIOWrapper'>
11 
12 #2.向文件中添加内容
13 fp.write('人生苦短,我用python')
14 
15 #3.关闭文件
16 fp.close()

 

r r模式 read 读取模式
1.文件不存在则报错,文件已存在则打开文件
2.文件的指针指向文件的开头

 1 '''
 2 1.打开文件
 3 2.读取文件内容
 4 3.关闭文件
 5 '''
 6 
 7 #1.打开文件
 8 fp = open('write.txt','r',encoding= 'utf-8')
 9 #print(fp,type(fp))
10 
11 #2.读取文件内容
12 data = fp.read()
13 print(data)
14 #输出结果:人生苦短,我用python
15 
16 #3.关闭文件
17 fp.close()

 

x x模式 xor 异或模式
1.文件不存在则新建文件,文件已存在则报错
2.文件的指针指向文件的开头

a a模式 append 追加模式
1.文件不存在则新建文件,文件已存在则打开文件
2.文件指针指向文件的末尾

扩展模式:
b b模式 bytes bytes模式
+ plus模式 增强模式

文件操作模式:
w,r,a,x
wb,rb,ab,xb
w+,r+,a+,x+
wb+,rb+,ab+,xb+

文件指针:程序操作文件的光标(我们看不见 不是我们使用的光标)

 1 #open函数
 2 
 3 #w模式
 4 #open('test1.txt','w')
 5 
 6 #r模式
 7 #open('test2.txt','r')
 8 
 9 #x模式
10 #open('test3.txt','x')
11 
12 #a模式
13 #open('test4.txt','a')
14 
15 #b模式
16 #fp = open('test5.txt','wb')
17 #fp.write('一二三四五,上山打老虎'.encode())#必须是bytes类型
18 #fp.close()
19 
20 #+模式
21 
22 fp = open('test6.txt','w+',encoding='utf-8')
23 #写入操作
24 fp.write('兄弟连激情四射!')
25 #将文件指针移动到开头
26 fp.seek(0)
27 #读取操作
28 data = fp.read()
29 print(data)
30 #输出结果:兄弟连激情四射!
31 fp.close()

 

close():关闭文件对象,方便回收资源
文件打开就要关闭!

read() 读取文件内容
格式:文件io对象.read()
读取所有内容

格式:文件io对象.read(读取的字符个数)
读取指定长度的字符

 1 #read
 2 fp = open('read.txt','r',encoding= 'utf-8')
 3 
 4 #读取操作1
 5 #data = fp.read()
 6 #print(data)
 7 
 8 #读取操作2
 9 data = fp.read(5)
10 print(data)
11 #输出结果:李白乘舟将
12 fp.close()

 

readline() 一次读取一行的内容
格式:文件io对象.readline()
读取一行内容

格式:文件io对象.readline(读取的字符个数)
读取内容:如果个数>当前行的字符数,只读取当前行,如果读取的字符个数<=当前行字符串,按照指定的长度读取

 1 fp = open('readline.txt','r',encoding='utf-8')
 2 
 3 #读取一行内容
 4 data = fp.readline()
 5 print(data)
 6 #输出结果:李白乘舟将欲行,
 7 
 8 #读取一行内容
 9 data = fp.readline()
10 print(data)
11 #输出结果:忽闻岸上踏歌声,
12 
13 #读取一行内容
14 data = fp.readline()
15 print(data)
16 #输出结果:桃花潭水深千尺,
17 
18 #读取一行内容
19 data = fp.readline()
20 print(data)
21 #输出结果:不及汪伦送我情
22 
23 #读取一行内容
24 data = fp.readline(30)
25 print(data)
26 #输出结果:
27 
28 fp.close()

 

readlines() 一次读去多行内容

格式:文件io对象.readlines()
将所有数据按行读取到列表当中去

格式:文件io对象.readlines(字符个数)
将所有数据按行读取到列表当中去

注意:如果字符个数不满1行按照一行计算

 1 fp = open('readlines.txt','r',encoding='utf-8')
 2 
 3 #读取内容1
 4 #data = fp.readlines()
 5 #print(data)
 6 
 7 
 8 #读取内容2
 9 data = fp.readlines(11)
10 print(data)
11 
12 fp.close()

 


write() 向文件中写入内容
格式:文件io对象.write(内容)

1 #write()
2 fp = open('write2.txt','w',encoding='utf-8')
3 #写入方法
4 #fp.write('唧唧复唧唧,木兰当户织')
5 fp.close()

 

writelines() 将容器数据写入到文件当中

格式:文件io对象.writelines(容器类数据)

1 #有一个字符的列表
2 shi = ['鹅鹅鹅\n','曲项向天歌\n','白毛浮绿水\n','红掌拨清波']
3 
4 fp = open('writelines.txt','w',encoding='utf-8')
5 #写入操作
6 fp.writelines(shi)
7 fp.close()

 

truncate() 截取文件内容

格式:文件io对象.truncate(字节个数)

#与文件指针相关的函数

1 #truncate() 截取文件内容
2 fp = open('truncate.txt','r+')
3 #截取操作
4 fp.truncate(10)#这里的长度是字节个数而不是字符个数!!
5 fp.close()

 

tell() 获取当前文件指针的位置,文件指针按照字节计算而不是字符!

格式:文件io对象.tell()
返回值:文件指针位置的整数

 1 #tell() 获取当前文件指针的位置,文件指针按照字节计算而不是字符!
 2 fp = open('tell.txt','r',encoding='utf-8')
 3 #获取文件指针的位置
 4 position = fp.tell()
 5 print(position)
 6 
 7 #读取文件内容
 8 data = fp.read(3)
 9 print(data)
10 
11 #获取文件指针的位置
12 position = fp.tell()
13 print(position)
14 
15 fp.close()

 

seek() 设置指针的位置

格式:文件io对象.seek(指针长度,参考位置) #这是官方定义的功能

指针长度: 只是一个整数
参考位置: 0 表示从头开始计算长度 【只有这个可以使用,可以直接省略】
1 表示从当前指针的位置开始计算长度
2 表示从末尾向前计算长度

 

 1 #seek() 设置指针的位置
 2 fp = open('seek.txt','r',encoding='utf-8')
 3 
 4 #获取当前指针的位置
 5 print(fp.tell())
 6 
 7 #调整文件指针的位置
 8 fp.seek(12,0)
 9 
10 #获取当前指针的位置
11 print(fp.tell())
12 
13 #读取内容
14 print(fp.read(3))
15 
16 #获取当前指针的位置
17 print(fp.tell())
18 
19 fp.close()

 

posted @ 2019-05-17 14:15  双伟科技  阅读(253)  评论(0编辑  收藏  举报