Python学习之文件操作

文件的操作

今天来学习Python读写文件,首先看一下文件操作的基本概念

  • 文件类型
    • 二进制文件
    • 文本文件
  • 文件操作步骤
    • 打开文件
    • 读写数据
    • 关闭文件
打开文件
  • open()函数
    • 语法,open(file,mode=‘r’,encoding=“utf-8”)
    • file:文件路径/文件名
    • mode,文件打开模式(r只读,w写入)
    • encoding,文件的编码
  • 文件打开模式
模式 描述
r 默认,只读
w 写入,覆盖文件
a 追加,文件末尾写入
x 创建文件(存在则报错)
b 二进制模式(rb、wb)
+ 读写模式:r+、w+
上下文管理器with

with的作用如下

  • 自动管理文件的打开和关闭
  • 即使有异常,也可以正确关闭文件
  • 使用了with,就不用调用.close来关闭文件了

如果上面的知识了解的话,下面就让我们看一下读取文件的操作;主要有以下几方面

  • 读取

    • 读取整个文件

      file_path = "C:\\Users\\xin\\Desktop\\test.txt"
      # 读取整个文件
      with open(file_path, 'r', encoding="utf-8") as file:
          content = file.read()
      print(content)
      
      """
      19日下午,你来到云南省丽江古城考察。
      他沿着石板路边走边看,当地居民和沿途游客十分热情地向你问好:“能不能邀请您来喝杯啡?”
      你同大家亲切交流:“云南咖啡还是代表着中国的,现在国外也是受欢迎的。”
      """
      
    • 按行读取

      # 按行读取文件
      with open(file_path, 'r', encoding="utf-8") as file:
          for line in file:
              print(line)
      """
       19日下午,你来到云南省丽江古城考察。
      
      他沿着石板路边走边看,当地居民和沿途游客十分热情地向你问好:“能不能邀请您来喝杯啡?”
      
      你同大家亲切交流:“云南咖啡还是代表着中国的,现在国外也是受欢迎的。”
      """
      
      
      # 可以看到上面的方法会导致存在换行符,这个时候我们可以进行处理
      
      with open(file_path, 'r', encoding="utf-8") as file:
          for line in file:
              print(line.strip()) # 去除换行符
      
      """
      19日下午,你来到云南省丽江古城考察。
      他沿着石板路边走边看,当地居民和沿途游客十分热情地向你问好:“能不能邀请您来喝杯啡?”
      你同大家亲切交流:“云南咖啡还是代表着中国的,现在国外也是受欢迎的。”
      """
      
      
      
    • 读取所有行

      # 读取所有行到列表
      with open(file_path, "r", encoding="utf-8") as f:
          lines = f.readlines()
          print(lines)
      """
      ['19日下午,你来到云南省丽江古城考察。\n', '他沿着石板路边走边看,当地居民和沿途游客十分热情地向你问好:“能不能邀请您来喝杯啡?”\n', '你同大家亲切交流:“云南咖啡还是代表着中国的,现在国外也是受欢迎的。”']
      """
      
    • 读取单行

      # 读取单行
      with open(file_path, "r", encoding="utf-8") as f:
          line = f.readline()
          print(line) # 19日下午,你来到云南省丽江古城考察。
      
  • 写入

    • 写入

      with open(file_path, "w", encoding="utf-8") as f:
          f.write("This is appended content.")
      
      with open(file_path, 'r', encoding="utf-8") as file:
          for line in file:
              print(line)
      
      """
      可以看到,文件只剩下现在的内容了;覆盖了之前的内容,所以谨慎使用
      This is appended content.
      """
      
    • 追加

      with open(file_path, "a", encoding="utf-8") as f:
          f.write("\nThis is appended content.")
      
      with open(file_path, 'r', encoding="utf-8") as file:
          for line in file:
              print(line)
      
      """
      可以看到,追加的内容从新的一行开始了;关键在于\n这里,如果没有\n就没有了换行了
      19日下午,你来到云南省丽江古城考察。
      
      他沿着石板路边走边看,当地居民和沿途游客十分热情地向总你问好:“能不能邀请您来喝杯啡?”
      
      你同大家亲切交流:“云南咖啡还是代表着中国的,现在国外也是受欢迎的。”
      
      This is appended content.
      """
      
    • 写入多行

      lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
      with open(file_path, "w", encoding="utf-8") as f:
          f.writelines(lines)
      
      with open(file_path, 'r', encoding="utf-8") as file:
          for line in file:
              print(line)
      """
      Line 1
      
      Line 2
      
      Line 3
      """
      

当然了,使用with是最方便的,你也可以不用with,使用open()先打开,之后在调用close()进行关闭,不过呢,不免有的是时候,你会忘记关闭;所以为了方便,还是推荐使用with上下文管理器进行文件的操作

你可能感兴趣的:(Python,python,学习,java)