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

    open() #打开
    file #文件的位置(路径)
    mode #操作文件的模式
    encoding #文件编码方式
    f = open("萝莉小姐姐的电话号",mode='r',encodinz='utf-8')
    print(f.read())
    f.close()

    操作文件
    1.打开文件
    2.操作文件
    3.关闭文件

    文件操作的模式
    r,w,a(重要)
    rb,wb,ab(次要)
    r+,w+,a+(没啥用)

    r操作:
    f = open("萝莉小姐姐电话号",mode="r",encoding="utf-8")
    print(f.read()) #全部读取
    print(f.read(5)) #按照字符进行读取
    print(f.read())

    print(f.readline()) # 读取一行内容,自动换行
    print(f.readline()) # "常鑫你就是大帅比 "
    print(f.readline().strip()) #去除换行符

    print(f.readlines()) # 一行一行的读取,存放在列表中

    解决大文件:
    for i in f:
    print(i) # 本质就是一行一行进行读取

    print(f.readline())
    print(f.readline())
    print(f.readline())

    w操作:
    w分为两步:
    1.先清空文件
    2.写入文件

    f = open("萝莉小姐姐电话号","w",encoding="utf-8")
    f.write("123456789 ")
    f.write("123456789 ")
    f.write("123456789 ")
    f.write("123456789 ")

    路径:
    1.绝对路径 -- C:usermeetpython24萝莉小姐姐电话号
    2.相对路径

    绝对路径方式打开文件
    f = open("F:s24day08萝莉小姐姐电话号","r",encoding="utf-8")
    print(f.read())

    相对路径方式打开文件
    f = open("../day03/萝莉小姐姐电话号","r",encoding="utf-8")
    print(f.read())
    ../ 返回上一层

    f = open(r"C:user ets24day03萝莉小姐姐电话号","r",encoding="utf-8")

    路径转义:
    1.""
    2.r"C:user et"
    推荐使用相对路径 (*****)

    s = "[1,'2',3,4]"
    print(s)
    print(repr(s)) # repr -- 显示数据原生态

    a操作: 追加写
    在源文件的基础上进行添加
    f = open("../day03/萝莉小姐姐电话号","a",encoding="utf-8")
    f.write("138383848 ")
    f.write("138383850 ")

    f = open('萝莉小姐姐的电话号',mode ='ab')
    mag = '你好我不好'.encode('utf-8')
    f.write(mag)

    rb
    f1 = open("1.jpg","rb")
    print(f1.read()) # 全部读取
    print(f1.read(3)) # 按照字节读取

    wb
    f = open("3.jpg","wb")
    f.write(f1.read())

    ab
    f = open("2.jpg","ab")
    f.write("你好啊".encode("utf-8"))

    f = open("2.jpg","rb")
    print(f.read())

    +操作
    r+: 读写 - 先读后写

    错误的操作 (坑)
    f = open("萝莉小姐姐电话号","r+",encoding="utf-8")
    f.write("常鑫你太美")
    print(f.read())

    正确的操作:
    f = open("萝莉小姐姐电话号","r+",encoding="utf-8")
    print(f.read())
    f.write("常鑫你太美")

    w+ 清空写,读

    f = open("萝莉小姐姐电话号","w+",encoding="utf-8")
    f.write("常鑫你太美")
    print(f.tell())

    f.seek(15)

    print(f.tell())
    print(f.read())

    a+ 追加写,读
    f = open("萝莉小姐姐电话号","a+",encoding="utf-8")
    f.write("常鑫你太美")
    print(f.tell()) # 字节数
    print(f.seek(0,0)) # 0将光标移动到文件的头部
    print(f.read())

    其他操作:
    tell 查看光标 --- 返回的是字节数
    seek 移动光标
    1.seek(0,0) -- 移动到文件的头部
    2.seek(0,1) -- 当前位置
    3.seek(0,2) -- 移动到文件的末尾
    4.seek(3) -- 按照字节进行移动(按照编码集,自己进行计算)

    f = open("萝莉小姐姐电话号","r",encoding="gbk")
    print(f.read(3)) # 字符

    f = open("萝莉小姐姐电话号","rb")
    print(f.read(3)) # 字节

    f = open("萝莉小姐姐电话号","r",encoding="gbk")
    print(f.read(3)) # 字符

    错误操作
    f = open("萝莉小姐姐电话号","r",encoding="gbk")
    f.seek(-1)
    print(f.read())

    文件修改

    f = open("萝莉小姐姐电话号","r",encoding="gbk")
    s = f.read()
    s1 = s.replace("你太美","吃煎饼")

    f1 = open("萝莉小姐姐电话号","w",encoding="gbk")
    f1.write(s1)

    with 关键字 open("萝莉小姐姐电话号","r",encoding="gbk") as f:
    文件操作的具体内容

    w,a 检测有文件就操作,没文件就创建

    with open("萝莉小姐姐电话号","r",encoding="gbk")as f,
    open("萝莉小姐姐电话号.txt","w",encoding="gbk")as f1:
    for i in f:
    s1 = i.replace("大烧饼","井盖")
    f1.write(s1)

    import os
    os.rename("萝莉小姐姐电话号","萝莉小姐姐电话号.bak")
    os.rename("萝莉小姐姐电话号.txt","萝莉小姐姐电话号")

    with open("萝莉小姐姐电话号","r",encoding="gbk")as f:
    pass # 缩进里操作文件
    print(f.read()) # 文件及已经关闭了

  • 相关阅读:
    HDU
    P2458 [SDOI2006]保安站岗[树形dp]
    POJ 2155 Matrix[树状数组+差分]
    P1281 书的复制[二分]
    【清北学堂】广州OI学习游记
    P1736 创意吃鱼法[二维dp]
    P2161 [SHOI2009]会场预约[线段树/树状数组+二分/STL]
    P1972 [SDOI2009]HH的项链[离线+树状数组/主席树/分块/模拟]
    P1273 有线电视网[分组背包+树形dp]
    windows下安装MySQL
  • 原文地址:https://www.cnblogs.com/zhuzhizheng/p/11232500.html
Copyright © 2011-2022 走看看