• day08 文件操作


    今日主要学习了

    1. 初识文件操作
    2. 只读(r, rb)
    3. 只写(w, wb)
    4. 追加(a, ab)
    5. r+读写
    6. w+写读
    7. a+写读(追加写读)
    8. 其他操作方法
    9. 文件的修改以及另一种打开文件句柄的方式

    一. 初识文件操作

    1. 文件中我们经常用open来打开文件,或取到文件的句柄. 然后通过文件句柄就可以对文件进行各种各样的操作了.根据打开方式的不同能够执行的操作也会有不同的操作.

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

    打开文件的基本操作: f= open('文件名',mode="r",encoding='utf-8')

    路径:

    1) 相对路径: 从文件内部一步一步的找到目标文件.

    进文件: 文件名/

    出文件: ../

    2) 相对路径:

    直接从磁盘里找到目标文件(这里有问题 ,建议少用)

    日志:程序运行过程中记录的所有信息.

    二. 只读操作(r, rb)

    相关操作:1. read()默认的是读取全部内容 

     read(n)注意这里可以在括号里放数字n,这里的数字指的是读取几个字符

        2.readlines()这里表示的意思是读取一行 用strip可以去除  readlines是一次性把所有的内容全部读出来,返回的是列表.

    for line in f:

    print(line) 

    这里的line指的是每一行的内容

    f = open("护士少妇嫩模.txt",mode="r", encoding="utf-8")
    content = f.read()
    print(content)
    f.close()    #关闭文件

    encoding表示的是编码集.根据文件的实际保存编码进行获取数据,常用的是utf-8

    三. 只写操作.(w , wb)

    这里的只写操作是在文件中写入数据.但是有一个问题 ,每次再用" w"的时候都会清空文件.

    只写文件可以创建文件 . 如果你输入的文件不存在,会帮你创建一个文件,在执行只写操作

    好习惯:  

    f.flush() 刷新管道

    f.close() 关闭文件

       四. 追加操作 .(a ,ab)

    追加顾名思义,在最后追加,我们写入的内容会直接追加到文件的尾部.

    这里的追加操作也可以创建新的文件

    五. r+操作 偏重于读

    必须是先读在写,一开始光标默认实在开头,准备读取的,当读完之后在进行写,使用频率相对来说比较高.

    六 .写读操作(w+,w+b) 写读操作注重的是写  

    必须先写,在读( 这里读到的内容是空的)

    先将所有的内容清空,再然后写入,最后读取.但是读取的内容是空的,不常用

    六.追加读(a+)

    a+模式下,不管是先读,还是后读,都是读取不到数据的.

    七.其他操作

    1. seek() 移动光标

    f.seek(m,n) 两个参数

    m: 这里的m表示的是偏移量 

    n:表示的是从n位置开始便宜默认是0 ,1 表示的是当前位置 , 2 表示的结尾

    2 . tell 返回光标的所在位置 

    文件的修改(重点)

    导入os模块 ,os模块表示的是操作系统  import  os

     1. 先从文件中读取内容.

     2.把需要进行的修改的内容进行修改

     3.把修改好的内容放到一个新的文件中 

     4.删除原来的文件

     5 .把文件重命名成原来的文件名字 

    在这里引入了一个新的语法词语: with

    with可以帮我们自动关闭文件的链接

    with open("夸一夸alex", mode="r", encoding="utf-8") as f, 
    / ==>这里的/表示的是这两行代码是一行的
    open("夸一夸alex_副本", mode="w", encoding="utf-8") as f2:
    
    for line in f:
        if "好人" in line:
        line = line.replace("好人", "sb")
        f2.write(line)
    
        time.sleep(3)  程序停止三秒

    with中会出现两个特殊函数

    __enter__  --> 调用with函数的时候会自动执行这个函数
    __exit__ --> 出现错误的时候,会被这个方法捕获到

    with函数的好处

    执行结束后会自动关闭这个操作,并且在处理错误的时候也会比较简洁
  • 相关阅读:
    给JFinal添加 Sqlite 数据库支持
    超强、超详细Redis数据库入门教程
    HTML5实现多文件的上传示例代码
    JAVA 使用Dom4j 解析XML
    【VBA研究】Excel VBA利用ADODB访问数据库使用小结
    JFinal 部署在 Tomcat 下推荐方法
    Java WebService 简单实例
    关于XML的验证(DTD与XSD)一点实践
    基于机器学习的web异常检测
    30万奖金!还带你奔赴加拿大相约KDD!?阿里聚安全算法挑战赛带你飞起!
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10071476.html
Copyright © 2020-2023  润新知