zoukankan      html  css  js  c++  java
  • 小学生都能学会的python(文件操作)

    小学生都能学会的python(文件操作)

    1. open("文件路径", mode="模式", encoding="编码")

    文件的路径:
    1. 绝对路径:
    1. 从磁盘根目录寻找
    2. 网络上的路径

    2. 相对路径
    相对于当前你这个程序所在的文件夹.(用的最多的)

    模式
    r 读. 只读模式
    w 写 只能写

    f = open("d:/sylar.txt", mode="w", encoding="utf-8")
    f.write("周笔畅
    ") # 写的时候. 先清空. 再写入. w
    f.write("胡辣汤
    ")
    f.write("实付款
    ")
    
    f.flush()
    f.close()
    

      


    a 追加写, 只能写入

    f = open("d:/sylar.txt", mode="a", encoding="utf-8")
    f.write("娃哈哈") # 追加写
    f.write("爽歪歪")
    f.flush()
    f.close()
    

      

    b: bytes 这个时候处理文件的是字节
    操作非文本文件的时候用带b的
    rb
    wb
    ab

    r+ 读写模式

    f = open("菜单", mode="r+", encoding="utf-8")  # r+最常见
    s = f.read(1) # 读取一个字符
    print(s)
    f.write("胡辣汤") # r+模式. 如果你执行读了操作. 那么写操作的时候. 都是写在文件的末尾. 和光标没有关系
    # f.write("ab") # 在文件开头写入. 写入的是字节,把原来的内容盖上
    
    # for line in f:
    #     print(line)
    # f.write("蛋炒饭")
    # 正确用法: 先读后写
    f.close()
    

      


    w+ 写读模式

    f = open("菜单", mode="w+", encoding="utf-8")  # 很少用.
    f.write("疙瘩汤")
    f.seek(0)   # 移动到开头
    content = f.read()
    print("读取的内容是", content)
    f.flush()
    f.close()
    

      


    a+ 追加读模式

    f = open("菜单", mode="a+", encoding="utf-8")
    f.write("韭菜鸡蛋饺子")
    
    f.seek(0)
    content = f.read()
    print(content)
    

      

    r+b
    w+b
    a+b

    光标:
    移动到开头: seek(0)
    移动到末尾: seek(0, 2)

    f = open("菜单", mode="a+", encoding="utf-8")  # r+ a+ w+
    
    # f.write("我要多写一点内容. 然后争取能看到效果")
    # f.seek(0)
    # print(f.read())
    # f.seek(0)
    # f.write("你")
    #
    # f.seek(0)
    # print(f.read(1))
    # f.seek(0)
    # f.write("大米饭")
    # f.write("大米粥")
    # print(f.tell())
    # f.seek(3) # 字节
    # print(f.read(1))
    # # print(f.read(1)) # 字符
    # # print(f.read(1)) # 字符
    # print(f.tell()) #字节
    # 使用tell()可以知道光标在哪里
    # seek()可以移动光标
    # 读写的时候. 单位 字符
    # 光标: 单位是字节
    #  光标移动到末尾: seek(0,2)
    
    # seek(偏移量, 位置)
    # 位置: 0开头, 1当前位置, 2末尾
    # 移动到末尾: seek(0, 2)
    

      

    文件的修改:
    1. 从源文件中读取内容. 修改内容. 写入到文件副本中.
    2. 删除源文件. 重命名文件副本为源文件的名字

    with open(..) as f 

    f = open("我的天呐", mode="r+", encoding="utf-8")
    f.seek(9)
    f.truncate(12) # 如果没有参数. 按照光标来阶段. 如果有参数. 截断到参数位置
    f.flush()
    f.close()
    

      关于修改文件

    import os # 引入os模块
    
    with open("alex", mode="r", encoding="utf-8") as f1, 
         open("alex_副本", mode="w", encoding="utf-8") as f2:
    
        for line in f1:
            new_line = line.replace("good", "sb")
            f2.write(new_line)
    
    os.remove("alex")
    os.rename("alex_副本", "alex")
    

      企业中日志处理

    result = []
    with open("2018-09-12.log", mode="r", encoding="utf-8") as f:
        hang = f.readline()
        title = hang.split("|")
        for line in f:
            line = line.strip()  # 去掉空白, 2018-09-11 00:00:01|刘伟|吃鸡
            lst = line.split("|")
            dic = {title[0]: lst[0], title[1]: lst[1], title[2]: lst[2]}
            result.append(dic)
    print(result)
    

      

      

  • 相关阅读:
    淘宝镜像安装方法
    vue项目 title处的小图标
    vue生成环境 访问路径配置
    element ui icon不展示
    vue 使用element-ui实现table表单列展示与隐藏
    通过id获取元素控制滚动位置回到顶部
    复杂传值
    vue 中el-card点击事件失效解决
    滚动条隐藏 兼容
    【javascript/PHP】当一个JavaScripter初次进入PHP的世界,他将看到这样的风景
  • 原文地址:https://www.cnblogs.com/konghui/p/9670322.html
Copyright © 2011-2022 走看看