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

    1. 文件操作的初始

      1. 打开文件需要知道三个!

        1. 文件的路径

        2. 打开方式:读,写,追加,读写,写读。

        3. 编码方式utf-8,gbk,gb2312.

          f1 = open('d:读取文件.txt',encoding='utf-8',mode='r')
          content = f1.read()
          print(content)
          f1.close()
          
          #open 内置函数,open底层调用的是操作系统的接口。
          #f1,变量,也叫文件句柄。对文件进行的任何操作,都通过文件句柄.的方式。
          #encoding:可以不写,不写参数,默认的编码本,操作系统的默认的编码。
          #f1.close():关闭文件话柄。
          #mode:选择操作模式,r=读取,w=写入,a=追加,r+=读取追加
          
          
      2. 文件操作的三部曲:

        1. 打开文件
        2. 对文件句柄进行相应操作
        3. 关闭文件。
      3. 报错原因:

        1. UnicodeDecodeError:文件储存时与文件打开时编码运用不一致。

        2. 第二个错误:路径分隔符产生问题:

          1. r'c:UsersoldboyDesktop'#在路径前面增加一个r。
            
      4. 文件操作的读

        1. r,rb,r+b 四种模式

          1. r:read for
          2. rb:操作的是非文本的文件。图片,视频,音频。
          read#全部都读出来
          f = open('文件的读',encoding='utf-8')
          content = f.read()
          print(content)
          f.close
          
          #read(n)按照字符读取
          f = open('文件的读',encoding='utf-8')
          content=f.read(5)
          print(content)
          f.close
          
          #readline()读取一行
          f = open('文件的读',encoding='utf-8')
          print(f.readline())
          f.close
          
          #readlines()返回一个列表,列表中的每个元素都是原文件的每一行。
          f = open('文件的读',encoding='utf-8')
          l1 = f.readlines()
          for line in l1:
              print(l1)
          f.close
          
          for 读取
          f = open('文件的读',encoding='utf-8')
          for i in f:
              print(i)
          f.close
          
      5. 文件操作的写

        1. w,wb,w+,w+b四种模式

          #没有文件,创建文件,写入内容
          f = open('文件的写',encoding='utf-8',mode='w')
          f.write('要写的内容')
          f.close
          
          #如果文件存在,先清空文件内容,再写入新内容
          f = open('文件的写',encoding='utf-8',mode='w')
          f.write('要写的内容')
          f.close
          
          wb
          f = open('美女.jpg',encoding='utf-8',mode='rb')
          content = f.read()
          f.close
          f1 = open('美女2.jpg',encoding='utf-8',mode='mb')
          f1.write(content)
          f1.close
          
      6. 文件操作的追加

        a,ab,a+,a+b四种模式

        #没有文件创建文件,追加内容
        f = open('文件的追加',encoding='utf-8',mode='a')
        f.write('要追加的内容')
        f.close
        
        #有文件,在原文件的最后面追加内容
        f = open('文件的追加',encoding='utf-8',mode='a')
        f.write('要追加的内容')
        f.close
        
      7. 文操作的其他模式 r+

        #读取并追加 #顺序不能错误
        f = open('文件的读写',encoding='utf-8',mode='r+')
        content = f.read()
        print(content)
        f.write('人的一切痛苦,本质都是对自己无能的愤怒')
        f.close
        
      8. 文件操作的其他功能

        1. 三个大方向:

        读,四种模式:r rb r+ r+b

        写,四种模式:w ,wb,w+,w+b

        追加 四种模式:a,ab,a+,a+b

        相应的功能:对文件句柄的操作:read read(n) readline() readlines()write()

        #tell 获取光标位置,单位字节
        f = open('文件的读写',encoding='utf-8')
        print(f.tell())
        content=f.read()
        print(content)
        f.close
        
        #seek 调整光标的位置
        f = open('文件的读写',encoding='utf-8')
        f.seek(7)
        content=f.read()
        print(content)
        f.close
        
        flush 强制刷新
        f = open('文件的其他功能',encoding='utf-8',mode='w')
        f.write('fhjsakhk')
        f.flush()
        f.close()
        
      9. 打开文件的另一种方式

        优点1:可以一次操作多个文件
        with open('文件的读',encoding='utf-8')as f1,
        	open('文件的写',encoding='utf-8',mode='w')as f2:
                print(f1.read())
                f2.write('hfdjahk')
        优点2:不用手动关闭文件句柄
        with open('文件的读',encoding='utf-8')as f1:
            print(f1.read)
        
      10. 文件操作的改

        1. 文件操作改的流程:
          1. 以读的模式打开原文件。
          2. 以写的模式创建一个新文件。
          3. 将原文件的内容读出来修改成新内容,写入新文件。
          4. 将原文件删除
          5. 将新文件重命名成原文件
        2. 具体代码
        第一种:
        import os #加载一个模块
        with open('alex自述',encoding='utf-8')as f1,
        	open('alex自述.bak',encoding='utf-8',mode='w')as f2:
                du = f1.read()
                gai = du.replace('alex','SB')
                f2.write(gai)
        as.remove('alex自述')
        as.remane('alex自述.bak','alex自述')
        
        第二种:
        import os
        with open('alex自述',encoding='utf-8')as f1,
        	open('alex自述.bak',encoding='utf-8',mode='w'):
                for i in f1:
                    zhi = i.replace('alex','sb')
                    f2.write(zhi)
        as.remove('alex自述')
        as.vemane('alex自述.bak','alex.自述')
        
        
        
        #有关清空问题:
        关闭文件句柄,再次以w模式打开此文件时,才会清空。
        with open('文件再写',encoding='utf-8',mode='w')as f:
            for i in range(9):
                f1.write('只要句柄不关闭,写多少都不会被删除')
        
        
  • 相关阅读:
    mysql修改库、表、字段 字符集,中文排序
    CENTOS6.5 编译安装MySQL5.7.14
    自己的一个小小的目标
    css 浮动和清除浮动
    移动端调试方法
    Fiddler抓包工具总结
    Vue中错误图片的处理
    跨域资源共享 CORS 详解
    十大排序算法JavaScript实现总结
    javascript实现二叉搜索树
  • 原文地址:https://www.cnblogs.com/wang-xing-hao/p/10877923.html
Copyright © 2011-2022 走看看