python学习之文件操作

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# date:2018/06/08

 一. 初识⽂文件操作   

  python来读写文件是用open()函数来打开一个⽂文件, 获取到⽂文件句句柄. 然后通过文件句柄就可以进行各种各样的操作了. 根据打开方式的不同能够执行的操 作也会有相应的差异.     

  打开文件的方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤用的是r(只读)模式 

二、读写操作

默认读模式只能读文件,不能做写操作,写模式只能写文件,不能读文件,除非使用(+)加模式

文件的操作顺序:

  1、找到文件,打开作业,指定模式,根据文件保存时的编码来指定编码格式 :open(“path\file” , moth = “r/w/r+等”, encoding = “以什么编码格式显示文件内容”)

  2、根据对应模式所拥有的方法操作文件: f.read() 等其它操作

  3、关闭文件  :f.close()

2.1、只读(r,rb)

  r 表示以字符来读取

  rb 表示以字节bytes来读取 ,如中文gbk 读取出来的格式为:b'\xd6\xd0',在读取图片,声音,视频文件时以此格式。

  无论rb还是wb,ab模式都不用指定encoding,因为文件存储最后都是字节的形式存起来的,如果指定将报错

  # ValueError: binary mode doesn't take an encoding argument 

  f = open("path\file.txt", mode = "r", encoding = "UTF-8")   # 找到文件,指向一个变量即句柄

  content = f.read()   

  print(content)

  f.close()

注:文件都有一个指针,读模式是从开头即指针为0时,进行读取的,当读取完毕后,指针停在文件的末尾,如果后面没有内容,不关闭文件的情况下,继续读取将读取的时空白

  f.read()一次性读取文件的全部内容,如果文件过大,将导致内存崩溃,系统宕机

  f.read  (n)   可以指定读取文件的范围,如果模式为r ,n表示几个字符,如果模式时rb,n表示几个字节(此处涉及到编码级,utf-8 中文表示3个字节,gbk 中文表示2个字节) 

     f.readline()  一次读取一行数据,readline() 默认末尾都加了\n 换行,如果想文件好看,需要在后面加上strip() 去掉换行符 

        f.readlines()  把每一行一次读取出来放到一个列表中,然后需要对文件操作可以for循环,但同样文件过大时,会导致内存溢出,慎用。

        如果需要对文件操作,可直接循环句柄f,它是一行一行拿出来进行操作的。

    for  line   in   f :

      print(line.respace(old,new))

2.2、只写(w, wb)

写模式,如果文件存在,则清空文件内容,如果文件不存在,则创建新文件,都是从开头写,

猜你喜欢

转载自www.cnblogs.com/sunxiuwen/p/9155190.html
今日推荐