zoukankan      html  css  js  c++  java
  • python入门(六)二次编码与文件操作

    二次编码

    1. # 密码本:
      # ascii  -- 没有中文
      # gbk    -- 英文 8b(位) 1B(字节) 中文 16b 2B
      # unicode -- 英文16b 2B  中文32b 4B
      # utf-8 --   英文8b 1B  欧洲16b 2B  亚洲24b 3B
      
      name="你好"
      s1=name.encode("utf-8")#编码
      s2=name.encode("gbk")#编码
      s2=s1.decode("utf-8")#用什么编码 就用什么解码
      

    3.14 文件操作

    1. 读、覆盖写、追加(r、w、a)

      • 读操作(r):

      • f=open("哈哈",mode="r",encoding="utf-8")#open是打开:引号下填写文件路径 我这里用的是相对路径,逗号隔开,然后写操作方式 r 是读的意思, 然后写编码方式,我这里写"utf-8" 
        print(f.read())#读取全部,选择read()
        print(f.readline())#读取一行,选择readline()
        print(f.readlines())#一行一行读取,存放在列表中
        f.close()#文件操作完成,然后进行关闭
        
        #解决大文件:
        for i in f:
            print(i)#本质上是一行行的读取
        #注意:文件读取在哪,光标就显示在哪
        
      • f 可写成任意变量等,它被称作:文件句柄,文件操作符,或者文件操作对象等。 open 是Python调用的操作系统(windows,linux,等)的功能,而windows的默认编码方式为gbk,linux默认编码方式为utf-8,所以你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8。 mode为打开方式:常见的有r,w,a,r+,w+,a+.rb,wb,ab,等,默认不写是r。 流程就是打开文件,产生一个文件句柄,对文件句柄进行相应操作,关闭文件。

      • 相对路径与绝对路径

      • f=open("哈哈",mode="r",encoding="utf-8")#同一个文件夹下面的文件,直接写文件名就可以。
        open('C:\Users\Meet')#绝对路径:从根目录下开始一直到文件名
        
        #../返回 上一层
        
        #我们在使用绝对路径的时候因为有这样程序是不能识别的,解决方法:
        open('C:UsersMeet')  #这样程序是不识别的
        #路径转义://
        解决方法一:
        open('C:\Users\Meet') #这样就成功的将进行转义   两个\代表一个
        
        解决方法二:
        open(r'C:UsersMeet') #这样相比上边的还要省事,在字符串的前面加个小r也是转义的意思  推荐使用这种
        
      • 覆盖写操作(w):

      • w分为两步:1、先清空文件 2、填入文件
        f=open("haha",mode="w",encoding="utf-8")
        f.write("你好好")#写的内容要用引号引起来;在写文件的时候我们要养成一个写完文件就刷新的习惯. 刷新flush()
        #repr 显示数据原生态
        f.flush()
        f.close()
        #当使用w模式下,在打开文件的时候就会把文件所有内容清空,然后操作
        #注意点:如果文件不存在使用w模式会创建文件,文件存在w模式是覆盖写,在打开文件时会把文件中所有的内容清空
        
      • 追加操作(a):

      • f=open("哈哈",mode="a",encoding="utf-8")#无论光标在什么位置,都是在文件的末尾写入
        f.write("年后")#默认是是有自动换行的,需要手动加 取消换行
        f.close()
        
    2. r+、w+、a+(读写:先读后写 、清空写读、追加写读)

      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())
      
    3. 其他操作

      tell #查看光标--返回的是字节数
      seek #移动光标
      seek(0,0)#移动到文件得头部
      seek(0,1)#当前位置
      seek(0,2)#移动到文件末尾
      seek(3)#按照字节进行移动(按照编码集)
      
      f.read(3)#要看当前模式如果是 r w a模式则是读取得字符 如果是r+ w+ a+ 读取得则是字节(按照编码集)
      
      #文件修改
       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 检测有文件就操作,没文件就创建
       
      #文件修改名称
       import os
       os.rename("萝莉小姐姐电话号","萝莉小姐姐电话号.bak")
       os.rename("萝莉小姐姐电话号.txt","萝莉小姐姐电话号")
      
       with open("萝莉小姐姐电话号","r",encoding="gbk")as f:
           pass # 缩进里操作文件
       print(f.read())  # 文件及已经关闭了
      
  • 相关阅读:
    Confluence 6 从一个备份中获得文件附件
    Confluence 6 从其他备份中恢复数据
    Confluence 6 从生产环境中恢复一个测试实例
    从 Confluence 5.3 及其早期版本中恢复空间
    Confluence 6 恢复一个空间的问题解决
    Confluence 6 从一个 XML 备份中导入一个空间
    Confluence 6 恢复一个空间
    Confluence 6 恢复一个站点有关使用站点导出为备份的说明
    网易蜂巢(云计算基础服务)MongoDB服务重磅来袭
    pdfjs viewer 开发小结
  • 原文地址:https://www.cnblogs.com/zhangdadayou/p/11415055.html
Copyright © 2011-2022 走看看