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

    文件操作

    1. 找到文件位置
    2. 双击打开
    3. 进行一些操作
    4. 关闭文件

    读操作

    文件只能读取一次

    注意光标的位置

    open()打开 通过python控制操作系统进行打开文件

    f=open(“路径”,mode=“模式”,encoding="编码格式")

    mode不写默认是r读

    f称为文件句柄

    file 文件的位置

    encoding 文件的编码

    f.read()

    read全部读取

    read(11)按照字符读

    readline() 按行读取默认尾部有一个

    readline().strip() 去掉

    readlines() 一行一行读取,全部存储在列表中

    路径:

    1. 绝对路径:从磁盘开始查找
    2. 相对路径:相对于上级文件进行查找

    rb 读取字节

    在字节操作时不能指定encoding编码

    f=open( " ",mode="rb")

    f.read() 全部读取

    f.read(3) 按照字节读

    f.readline()按照行进行行读取

    f.readlines()按照行进行行全部读取

    r 和rb的区别:

    1. r需要指定encoding,rb不需要
    2. r模式中的read(3)按照字符读取,rb模式的read(3)按照字节读取

    read 和readlines如果文件太大时会出现内存溢出

    解决方案:

    写操作

    w操作:清空写 w写文本

    1. 先清空文件(打开文件的时候)
    2. 先清空文件(打开文件的时候清空)
    3. 写入内容

    wb操作:清空写 w写字节

    a --- 追加写(文本)

    r+ 读写(有点用)

    先读后写
    f=open("密码","r+",encoding="utf-8")
    print(f.read())
    f.write("今天是周一")
    

    w+ 写读(有点用)

    f=open("密码","w+",encoding="utf-8")
    f.write("今天是周一")
    f.seek(0,0)
    print(f.read())
    如果光标移动到开头再次添加会覆盖原来的信息
    f=open("密码","w+",encoding="utf-8")
    f.write("今天是周一")
    f.seek(0,0)
    f.write("aaaaaa")
    print(f.read())
    

    a+ 追加读(追加的时候,光标移动到开头,添加时依然是加到后面)

    f=open("密码","a+",encoding="utf-8")
    f.write("今天是周一")
    f.seek(0,0)
    f.write("aaaaaa")
    f.seek(0,0)
    print(f.read())
    

    其他操作

    # seek() 移动光标
    # f.seek(0,0)  # 移动光标到文件的头部
    # f.seek(0,1)  # 移动光标到当前位置
    # f.seek(0,2)  # 移动光标到文件末尾
    # f.seek(6)   # 光标是按照字节移动
    
    
    f=open("密码","r",encoding="utf-8")
    print(f.read(5))
    f.seek(0,0)
    f.seek(0,1)
    f.seek(0,2)
    print(f.read())
    
    f=open("密码","r",encoding="utf-8")
    f.seek(6)
    print(f.read(3))
    
    f=open("密码","r",encoding="utf-8")
    print(f.read(3))
    print(f.tell())
    f.close()
    
    
    
    
    

    修改文件

    # 修改文件:
    # import os  # 操作系统交互的接口
    #
    # f = open('a2',"r",encoding="utf-8")
    # f1 = open("a1","w",encoding="utf-8")
    # for i in f:
    #     i = i.replace("日","天")
    #     f1.write(i)
    #
    # f.close()
    # f1.close()
    # os.remove("a2")   # 删除不能找回
    # os.rename("a1","a2")
    
    
    
    
    # import os  # 操作系统交互的接口
    # f = open('a2',"r",encoding="utf-8")
    # f1 = open("a1","w",encoding="utf-8")
    # for i in f:
    #     i = i.replace("天","日")
    #     f1.write(i)
    #
    # f.close()
    # f1.close()
    # os.rename("a2","a3")
    # os.rename("a1","a2")
    
    
    # 考点:
    # import os  # 操作系统交互的接口
    # f = open('a2',"r",encoding="utf-8")
    # f1 = open("a1","w",encoding="utf-8")
    # i = f1.read().replace("天","日")    # 将文件中全部内容读取 容易导致内存溢出
    # f1.write(i)
    #
    # f.close()
    # f1.close()
    # os.rename("a2","a3")
    # os.rename("a1","a2")
    
    # with open("a3","r",encoding="utf-8")as f,
    #         open('a2',"r",encoding="utf-8")as f1:
    #     print(f.read())
    #     print(f1.read())
    
    # 1.自动关闭文件
    # 2.同一时间操作多个文件
    
    # 文件操作的目的:
    #     1.持久化: 永久存储
    
    
  • 相关阅读:
    2020牛客暑期多校训练营(第三场)C-Operation Love(计算几何)
    洛谷 P3376 【模板】网络最大流
    2020牛客暑假多校训练营(第二场)F-Fake Maxpooling(单调队列)
    Codeforces Round #655 (Div. 2)【ABCD】(题解)
    Codeforces Round #648 (Div. 2)【ABCDEF】(题解)
    Codeforces Round #647 (Div. 2)
    Codeforces Round #646 (Div. 2)【ABCDE】(题解)
    Educational Codeforces Round 88 (Rated for Div. 2)【ABCDE】(题解)
    [蓝帽杯2020]一个利用data伪协议和include,file_get_contents写shell的web题
    [网鼎杯2020朱雀场] misc部分题解
  • 原文地址:https://www.cnblogs.com/python25/p/11402519.html
Copyright © 2011-2022 走看看