文件处理流程

文件处理流程

  • 打开文件,获得文件句柄并赋值给一个变量(open函数会自动检索该系统将数据存入硬盘的编码方式(gbk),所以默认是以bgk的方式解码,而python3存数据是以utf-8编码方式)
  • 通过文件句柄进行操作
  • 关闭文件

文件操作模式

  • 只读模式
1 f = open('test', encoding='utf-8')  # 默认为只读模式
2 data = f.read()  #读取文件的全部内容
3 print(data)
4 print(f.readable())  # True # 判断文件是否可读
5 print(f.readline()) # 读取文件的一行内容\n
6 print(f.readlines())  # ['我\n', '你\n', '他']
7 f.close()
View Code
  • 只写模式
1 # 会先将对应文件内容清空,然后写入自己设定的内容,如果文件名不存在,会先新建对应文件名的空文件
2 f = open('test', 'w', encoding='utf-8') #只写模式
3 print(f.writable()) #True
4 f.write('123')
5 f.write('456')   #多个write会写在同一行,即默认没有换行功能
6 f.writelines(['abc\n', 'def\n'])  #将要写的多行内容放在一个列表中
View Code
  • 追加模式
1 f = open('test', 'a', encoding='utf-8')
2 f.write('追加的方式ad')
3 f.close()
View Code
  • +模式
1 f = open('test', 'r+', encoding='utf-8')
2 f.write('520')
View Code
  • b模式
 1 #b模式:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
 2 f = open('test', 'rb')
 3 data = f.read()
 4 print(data)
 5 print(data.decode())
 6 f.close()
 7 
 8 f = open('test', 'wb')
 9 f.write(bytes('陈媛媛', encoding='utf-8'))
10 f.close()
11 
12 f = open('test', 'ab')
13 f.write('好美呀'.encode('utf-8'))
14 f.close()
View Code

 

小例子:

读取文件1的内容,稍作修改后写入到文件2中
  • 方法1
1 f_old = open('test', encoding='utf-8')
2 data = f_old.readlines()
3 f_old.close()
4 
5 f_new = open('test2', 'w', encoding='utf-8')
6 f_new.writelines(data[0].replace('520', ''))
7 f_new.close()
View Code
  •  方法2
1 #文件操作的另外一种方式with-as,这种方式的好处在于不用写close操作
2 with open('test', encoding='utf-8')as f_old,\
3         open('test2', 'w', encoding='utf-8') as f_new:
4     data = f_old.read()
5     f_new.write(data)
View Code

 

参考博文

 

posted @ 2019-01-31 14:52  Sakura媛媛  阅读(298)  评论(0编辑  收藏  举报