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

    文件操作

    open() # 打开
    file # 文件的位置(路径)
    mode # 操作文件的模式
    encoding()  # 文件编码方式
    f # 文件句柄
    
    # 操作文件:
    	# 1.打开文件
    	# 2.操作文件
    	# 3.关闭文件
    # 文件操作的方式
    # r,w,a(重要)
    # rb,wb,rb(次要)
    # r+,w+,a+(不怎么重要)
    
    f = open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding="文件的编码")
    f(文件句柄)
    

    r w a 重要

    f = open("log",mode="r",encoding="utf-8")
    print(f.read())
    # f.readline() 读取一行
    # f.readlines() 一行一行读取存放在列表
    f.close()  # 关闭文件
    
    f = open("log",mode="w",encoding="utf-8")
    f.write("test")  # 覆盖写,如果没有文件会新创建一个文件,只能写字符串
    f.close() 
    
    f = open("log",mode="a",encoding="utf-8")
    f.read()  # 追加写,在文本的末尾写入
    f.close()
    
    

    rb wb ab 次要

    # rb 读字节
    f1 = open("1.png","rb") # 不能使用encoding
    print(f1.read())  #  全部读取
    print(f1.read(3)) # 按照字节读取
    f1.close()
    
    # wb
    f = open("3.jpg","wb")
    f.write(f1.read())  #  覆盖写
    f.close()
    
    # ab
    f = open("2.jpg","ab")
    f.write("你好啊".encode("utf-8"))
    f1 = open("2.jpg","rb")
    print(f1.read().decode("utf-8"))
    f.close()
    f1.close()
    

    r+ w+ a+ 一般

    # r+ 读写 先读后写
    # 错误的操作(坑)
    f = open("log","r+",encoding="utf-8")
    f.write("test") # 先写后读会写到文件最前面,必须先读后写
    print(f.read())
    f.close()
    
    # 正确的操作:
    f = open("log","r+",encoding="utf-8")
    print(f.read())
    f.write("test12345")
    f.close()
    
    # w+ 清空写 读
    f = open("log","w+",encoding="utf-8")
    f.write("test")
    print(f.tell())
    f.seek(15)
    print(f.tell())
    print(f.read())
    f.close()
    
    # a+ 追加写,读
    f = open("log","a+",encoding="utf-8")
    f.write("test23")
    print(f.tell()) # 字节数
    print(f.seek(0,0)) # 0将光标移动到文件头部
    print(f.read())
    f.close()
    

    其它操作

    # tell 查看光标  -- 返回的是字节数
    # seek 移动光标
    	# 1.seek(0,0) -- 移动到文件的头部
    	# 2.seek(0,1) -- 当前位置
    	# 3.seek(0,2) -- 移动到文件的末尾
    	# 4.seek(3) -- 按照字节进行移动(按照编码集,自己进行计算)
     
    f = open("log","r",encoding="gbk")
    print(f.read(3))  # 字符
    
    f = open("log","rb")
    print(f.read(3))  # 字节
    
    # 错误操作
    f = open("log","r",encoding="gbk")
    f.seek(-1)
    print(f.read())
    
    # 文件修改
    f = open("log","r",encoding="gbk")
    s = f.read()
    s1 = s.replace("test","txt")
    f1 = open("log","w",encoding="gbk")
    f1.write(s1)
    f.close()
    f1.close()
    
    with 关键字 open("log","r",encoding="gbk") as f:
        文件操作的具体内容
    
    with open('log','r',encoding='gbk') as f, 
            open('log.txt','w',encoding="gbk") as f1:
         for i in f:
            s1 = i.replace("test",'txt')
            f1.write(s1)
    import os
    os.rename('log','log.bak')
    os.rename('log.txt','log')
    
    with open("log",'r',encoding="gbk") as f: # 自动关闭 f.close()
        pass # 缩进里操作文件
    print(f.read())  # 文件已经关闭
    
    with open 的好处
     1.可以同时打开多个文件
     2.能够自动关闭文件
    
    
    
  • 相关阅读:
    phonegap android 输入法弹出会遮盖表单框的解决办法
    html5 webDatabase 存储中sql语句执行可嵌套使用
    Spring @Cacheable注解无法生效或不起作用的问题整理
    SpringBoot---缓存技术2(基于Redis注解和基于RedisTemplate的手动缓存,包括将缓存数据序列化成json数据,有源码)
    使用document.domain+iframe跨域实例
    为已创建的pgsql设置主键自增
    基于canvas的流程编辑器
    使用RedisTemplate缓存List的一系列操作示例
    kafka
    element-ui table 剧中
  • 原文地址:https://www.cnblogs.com/alex3174/p/11189662.html
Copyright © 2011-2022 走看看