python基础之文件操作

文件操作

1,文件操作

open()

  • 打开文件
  • open('a.txt','r',encoding='utf-8'),默认代开模式为"r"

file

  • 文件路径

mode

  • 操作文件的模式

encoding

  • 文件的编码集
  • Windows的编码方式为gbk
  • Linux的编码方式为utf-8
  • 文件用什么编码,用什么方法打开

close()

  • 关闭文件
  • f.close()

f

  • 文件句柄

  • f = open('a.txt','r',encoding='utf-8')

  • 1,由应用程序向操作系统发起open()命令
    2,操作系统打开文件,并返回一个文件句柄给应用程序
    3,应用程序将句柄赋值给变量f
    

r操作

  • 只读模式:【默认模式,文件必须存在,不存在则抛出异常】
  • f.read()
    • 全部读取,光标移动到文件末尾
  • f.read('int')
    • 看文件的操作方式,读取(int)个字符
  • f.readline()
    • 读取一行内容,光标移动到第二行首部
  • f.readlines()
    • 读取每一行内容,存放于列表中

读取大文件

  • for in in f.read()

w操作

  • 只写模式:【不可读;不存在则创建;存在则清空内容】
  • 先清空文件
  • 再写入文件

路径

  • 绝对路径
  • 相对路径
  • ../返回上一层
  • 推荐使用相对路径
  • 路径转义
  • "//"
  • "r"

a操作

  • 之追加写模式:【不可读;不存在则创建;存在则只追加内容】
  • 追加写
  • 在原文将的基础上进行添加

2,mode

  • rb,wb,ab

  • 打开方式,不能encoding字符集

  • 读取的内容是字节类型,写入时也需提供字节类型,不能指定编码

  • 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)

    • rb:读字节

    • f = open('文件路径',mode = 'rb')
      msg = f.read()
      print(msg)
      f.close
      
    • wb:写字节

    • 打开文件的时候才清空文件

    • ab:追加字节

  • r+ 表示可以同时读写某个文件

    • r+:读写

    • f = open('文件路径',mode = 'r+',encoding = 'utf-8')
      msg = f.read()
      f.write()
      f.flush()
      f.close()
      print(msg)
      
    • w+:写读(移动光标)

    • a+:追加写,读(移动光标)

3,其他操作

  • tell
    • 定位光标的位置,返回的是字节数
  • seek
    • 移动光标
    • seek(0,0) :光标移动到起始位置
    • seek(0,1):当前位置
    • seek(0,2):移动到文件的末尾
    • seek(0,3):光标移动3个字节

4,修改文件

  • 1,打开文件读取所有内容

  • 2,创建一个新的文件

  • 3,将旧文件的内容进行操作后写入新文件

  • 将旧文件的名字改成是备份的,新文件 的名字改成是旧文件的名字

  • with open

  • with open('文件路径','r',encoding='utf-8')

    • 可以自动关闭文件
    • 可以同时操作多个文件
    • (面向对象——上下文管理)
  • with open('文件路径',mode= 'r',encoding = "utf-8") as f1,\
    	open('文件路径',mode = "w",encoding = "utf-8") as f2:
        msg = f1.read()
        new_msg = msg.replace('内容','新内容')
        f2.write(new.msg)
        os.remove('文件路径')  删除源文件
        os.rename('文件路径',’新文件名‘)  重命名新文件
    
  • import os
    with open('文件路径',mode = 'r',encoding = 'utf-8') as f1,\
    open ('文件路径',mode = 'w',encoding = 'utf-8') as f2:
    	for line in f1:
    		new_line = line.replace('内容','新内容')
    		f2.write(new.line)
    
    		
    
posted @ 2019-12-13 09:49  阿浪阿浪  阅读(137)  评论(0编辑  收藏  举报