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()) # 文件及已经关闭了

  • 相关阅读:
    数据仓库-(3)企业级数仓实战分享课程-1.课程简介/2.数仓简介/3.基础概念/4.大数据技术栈与组件
    数据仓库-(2)企业级数仓介绍
    数据仓库-(1)数仓主题分享记录
    Spark学习小记-(1)DataFrame的schema
    Hive学习小记-(11)left semi join
    Hive学习小记-(10)hive增量下发的变化流水表如何做update操作
    Hive学习小记-(9)hive分区表加字段**
    Hive学习小记-(8)hive查询除某列外所有数据(正则表达式查询)
    Hive学习小记-(7)group by原理&tips
    我曾七次鄙视自己的灵魂
  • 原文地址:https://www.cnblogs.com/zhuzhizheng/p/11232500.html
Copyright © 2011-2022 走看看