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

    文件操作

    相关操作

    # import os
    # print(os.getcwd())  # 查看当前工作路径
    # 其他操作:
    # tell() 查看光标 -- 返回光标的当前位置(字节)
    # seek 移动光标
        # seek(0,0) # 移动光标到文件开始位置
        # seek(0,1) # 光标的当前位置
        # seek(0,2) # 移动光标到文件的末尾位置
        # seek(3)   # 按照字节移动
    

    1.基本结构

    f = open ( '文件路径文件名' ,mode = '读或写' ,encoding = '编码')用什么编码打开,f是文件句柄
    content  = f.read()
    print(content)
    f.close()
    

    另一种方式

     with open("路径",mode="模式",encoding="编码") as f#赋值:  # 
        \open("a",mode="w",encoding="gbk") as f1:
    	#缩进 print(f.read())
    
    # with open 帮助自动关闭文件
    # with open 同时操作多个文件
    

    2.读模式(r,rb,r+)

    r模式

     f = open("a",mode="r",encoding="gbk")
     content = f.read()    # 全部读取read()将文件中的内容全部读取出来;
    #弊端 如果文件很大就会非常的占用内存,容易导致内存崩溃
     c1 = f.read(3)        # 字符读取
     print(f.readline())  # 读取一行内容#括号内加数字是读当前行的几个字符,不会读下一行
     print(f.readlines())#一行一行读取,存储到列表中   \n是换行
    f.close()#关闭文件
    
     f = open("a",mode="r",encoding="gbk")
     for i in f:
        print(i)#一行一行读
    

    rb模式

    f = open('文件路径名字',mode='rb')#rb读出来的是bytes类型,可以用来打开未知编码的文件或图片
    content = f.read()
    print(content)
    f.close()
     
    结果:
    b'\xe6\xa0\x87\xe9\xa2\x98\xe5\xbe\x88\xe5\xa5\xbd'
    

    r+模式

    #r+模式一定要记住是先读后写
    #深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入
    #或者操作文件的时候都是在结尾进行的操作.
    

    2写模式(w,wb,w+)

    w模式

    在写文件的时候我们要养成一个写完文件就刷新的习惯. 刷新flush()

    f = open('../path1/小娃娃.txt#文件路径',mode='w'写模式,encoding='utf-8')
    f.write('太白很白')f.flush()#刷新解放内存
    f.close()
    

    写的注意事项

    当选择使用w模式的时候,在打开文件的时候就就会把文件中的所有内容都清空,然后在操作
    注意点:如果文件不存在使用w模式会创建文件,文件存在w模式是覆盖写,在打开文件时会把文件中所有的内容清空.

    wb模式

    • 写入是用bytes写入来存储,一般是把图片等转化成字节形式来写入存储

    w+模式

    • 先将所有的内容清空,然后写入.最后读取.但是读取的内容是空的,不常用

    3.追加(a,ab,a+)

    只要是a或者ab,a+都是在文件的末尾写入,不论光标在任何位置.

    在追加模式下,我们写入的内容后追加在文件的末尾

    f1  = open ( '../path1/小娃娃.txt' ,mode =  'a' ,encoding = ('utf-8' )
    msg  =f1.write('这支烟灭了以后')
    

    4.修改文件

    # 修改文件:
    # with open("原文件")as f,open("新文件")as f1:
        # f.for循环的读取
        # f1.for循环的写入
    
    # import os
    # os.rename("原文件名字",备份名字")    # 对原文件进行备份
    # os.rename("新文件名字","原文件名字") # 把新文件改成原文件的名字
    
  • 相关阅读:
    区块链技术基础
    理解数字货币
    MySQL-插入更新 ON DUPLICATE KEY UPDATE
    Flume-Failover Sink Processor 故障转移与 Load balancing Sink 负载均衡
    Flume-Replicating Channel Selector 单数据源多出口
    Flume-几种拓扑结构
    Flume-事务与传输流程
    Java-JPDA 概述
    Navicat Premium
    Flume-Taildir Source 监控目录下多个文件的追加
  • 原文地址:https://www.cnblogs.com/nieice/p/11018916.html
Copyright © 2011-2022 走看看