zoukankan      html  css  js  c++  java
  • 第四章、三元运算与文件操作

    本章重点:

    1、掌握三元运算

    2、掌握文件操作的几种模式:r,r+,w,w+,rb,wb

    3、掌握文件读写、文件修改占内存和占硬盘的两种方式

    4、文件操作的常用功能

    一、三元运算

    三元运算又称三目运算,是对简单的条件语句的简写。比如:

    if 条件成立:
        val = 1
    else:
        val = 2

    可改成三元运算:

    val = 1 if 条件成立 else 2

    二、文件操作

    1、读文件

    f = open (file = "读文件", mode = "r", encoding = "utf-8")
    f.read()
    f.close()

    1-1、rb模式,二进制读

    f = open (file = "读文件", mode = "rb")
    f.read()
    f.close()

    注意,和r模式相比,不需要指定编码,因为以rb打开的是字节模式

    2、写文件w

    f = open (file = "读文件", mode = "w", encoding = "utf-8")
    f.write()
    f.close()

    2-1、wb模式、二进制写

    f = open (file = "读文件", mode = "wb")
    f.write()
    f.close()

    w和wb模式都会在写的时候把原有内容清空

    3、读写模式:写读后写 r+

    f = open (file = "读文件", mode = "r+", encoding = "utf-8")
    data = f.read()  # 可以读内容
    print(data)
    f.write("可以写内容")  
    f.close()

    4、写读模式,w+

    f = open (file = "读文件", mode = "w+", encoding = "utf-8")
    data = f.read()  # 可以读内容
    print(data)
    f.write("
    ew line")
    f.write("
    ew line")
    f.write("
    ew line")
    f.write("
    ew line")
    
    print("content",f.read())
    f.close()

    输出

        #空行,是print的结果
    content # 从这里开始,读到的是刚写入的内容
    new line
    new line
    new line
    new line

    w+会先把文件清空,再写新内容,很少用

    5、追加模式,在原有文件末尾追加内容

    f = open (file = "读文件", mode = "a", encoding = "utf-8")
    f.write()
    f.close()

     三、修改文件

    1、文件修改替换原文件(占硬盘)

    # 修改文件
    import os
    
    f_name = "文件处理"
    f_new_name = "%s.new" % f_name
    old_str = "周蓓"
    new_str = "zhoufang"
    
    f = open(f_name, mode="r", encoding="utf-8")
    f_new = open(f_new_name, "w", encoding="utf-8")
    for line in f:
        if old_str in line:
            line = line.replace(old_str, new_str)
        f_new.write(line)
    f.close()
    f_new.close()
    
    os.replace(f_new_name, f_name)
    # 会生成一个新文件,将新文件替换成原文件即可

    2、文件修改占内存的方式

    old_str = "周芳"
    new_str = "wuyi"
    f = open(file="文件处理", mode="r+", encoding="utf-8")
    data = f.read()
    f.seek(0)
    data1 = data.replace(old_str, new_str)
    f.write(data1)
    f.close()

    四、文件操作的一些常用功能

    1、f.seek()    重置光标位置

    2、f.tell()     寻找光标所在位置

    3、f.truncate()   后面的内容全部截断

    注意:所有括号内的全是字节形式,比如utf-8中,中文占3个字节,f.seek(2),就会乱码

  • 相关阅读:
    《Django By Example》第十二章(终章) 中文 翻译 (个人学习,渣翻)
    《Django By Example》第十一章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第十章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第九章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第八章 中文 翻译 (个人学习,渣翻)
    《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
    我的superui开源后台bootstrap开发框架
    LayoutInflater 总结
    Android屏幕分辨率概念(dp、dip、dpi、sp、px)
    android studio安装问题
  • 原文地址:https://www.cnblogs.com/51zf/p/9185150.html
Copyright © 2011-2022 走看看