zoukankan      html  css  js  c++  java
  • python-14-文件操作

    前言

    python中对文件的读写也是非常方便的,本章节将讲解读、写、读写等常用操作。下面讲师必要的参数:

    1、文件路径:必须得知道文件的路径,不然怎样进行读写?

    2、编码方式:utf-8,gbk,gb2312....(python3的str是unicode编码存储的,我们一般常用utf-8存在,编码不了解的话容易出现乱码)

    3、操作模式:只读,只写,追加,写读,读写。

      “r”打开读取(默认)

      “w”打开进行写入,首先截断文件

      “x”创建一个新文件并打开它进行写入

      “a”打开写入,如果文件存在,则追加到文件的末尾

      “b”二进制模式

      “t”文本模式(默认)

      “+”打开磁盘文件进行更新(读写)

      “U”通用换行模式(已弃用)

    一、只读

    1、r:str方式读,编码:UTF-8,bytes --》 str(将我们的文件转为python3中的str)

    # 1、r:str方式读,编码:UTF-8
    # bytes --》 str
    f = open('1.txt', 'r', encoding="UTF-8")
    c = f.read()
    print(c)
    f.close()

     2、rb:bytes方式读,非文字的文件。可以看到【我是一个文件哈】是7个文字,一个文字3个字节,所以我们转换为bytes有21个,每个 隔开。

    # 2、rb:bytes方式读,非文字的文件
    f = open('1.txt', 'rb')
    c = f.read()
    print(c)
    f.close()

     二、只写

    1、w:写入,没有此文件则是新创建,有此文件会清空源文件再写。

    # 1、w:写入,没有此文件是创建,有此文件会清空源文件再写
    f = open('log', 'w', encoding="utf-8")
    f.write('abc小龙abc')
    f.close()

     2、wb:二进制写入,凡是有wb都需要加.encode("utf-8")

    # 2、wb:写入,没有此文件是创建,有此文件会清空源文件再写
    f = open('log1', 'wb')
    f.write('abc小龙abc'.encode("utf-8"))     # 以utf-8编码格式,写入东西
    f.close()

     3、a:追加写入

    # 3、a:追加写入
    f = open('log1', 'a', encoding="utf-8")
    f.write('abc小龙abc')
    f.close()

     三、读写

    1、r+ 先读再写,推荐该 r+ 方式。

    # 1、先读再写,写了不能再读
    f = open('log', 'r+', encoding="utf-8")
    f.seek(0)
    print(f.read())
    f.write('小哥哥谈恋爱吗?我偷老公的钱养你')
    f.close()

     2、先写再读,推荐该 r+ 方式。

    # 2、先写再读,不推荐
    f = open('log', 'r+', encoding="utf-8")
    f.write('小哥哥谈恋爱吗?我偷老公的钱养你')
    print(f.read())
    f.close()

    当然模式可以组合,如r+b,a+b等。

    四、常用操作

    1、seek 指定光标

    f = open("log", "r+", encoding="utf-8")
    a = f.read()        # 默认读全部
    print(a)
    f.seek(6)           # 按照字节指定光标开始读位置
    c = f.read(6)       # 指定读 N 个字符
    print(c)
    f.close()

     2、追加 小龙女,调节光标获取后面的9个字节

    # 追加 小龙女,调节光标获取后面的9个字节
    f = open("log", "a+", encoding="utf-8")
    f.write('小龙女')
    count = f.tell()     # 查看光标的位置
    f.seek(count-9)      # 按照字节指定光标开始读位置
    c = f.read()
    print(c)
    f.close()

     3、readline、readlines的使用

    f = open("log", "a+", encoding="utf-8")
    f.seek(0)
    # c = f.readline()     # 一行一行读
    d = f.readlines()   # 每行当成一个列表,添加到list中
    # print(c)
    print(d)
    f.close()

     4、推荐:with, 不用 close 关闭,也可读多个

    # 推荐:with 不用 close 关闭,可读多个
    a = open('log', "r+", encoding="utf-8")
    b = open('log', "r+", encoding="utf-8")
    with a as f, b as f1:
        print(f.read())
        print(f1.read())

    欢迎来QQ交流群:482713805

  • 相关阅读:
    《小团团团队》第一次作业:团队亮相
    《代码敲不队》第六次作业:团队项目系统设计改进与详细设计
    《代码敲不队》第五次作业:项目需求分析改进与系统设计
    《代码敲不队》第四次作业:项目需求调研与分析
    《代码敲不队》第三次作业:团队项目的原型设计
    《代码敲不队》第二次作业:团队项目选题报告
    《代码敲不队》第一次作业:团队亮相
    《队长说得队》第六次作业:团队项目系统设计改进与详细设计
    《队长说得队》第五次作业:项目需求分析改进与系统设计
    《队长说得队》第四次作业:项目需求调研与分析
  • 原文地址:https://www.cnblogs.com/gsxl/p/11966383.html
Copyright © 2011-2022 走看看