文件的操作

文件的操作

  1. 文件的基本操作初识
    • 利用python代码写一个软件,去操作文件
      • 文件路径:path(绝对路径与相对路径)
      • 打开方式:读 写 追加 读写 写读 ...
      • 编码方式:utf-8 gbk gb2312
        f1 = open('E:\学生信息表.txt',encoding='utf-8',mode='r')
        content = f1.read()
        print(content)
        f1.close()
    • 文件操作三部曲:
      • 打开文件
      • 对文件句柄进行相应的操作
      • 关闭文件
    • 报错原因:
      • UnicodeDecodeError:文件存储时与文件打开时编码方式运用不一致
      • 第二个问题(SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated):路径分隔符产生的问题:
        • 解决方式:
          1. r'C:\Users\Administrator\Desktop'
          2. C:\\Users\Administrator\Desktop' #加一个转义字符('\')
  2. 文件的操作读
    • r
      • r(读)有5种:read,read(n),readline,readlines,for循环读取,其中for循环与read比较重要也是一般常用的
    • rb:操作的是非文本文件。图片,视频,音频
      • rb模式不能用encoding
        f = open('美女.jpg',mode='rb')
        content = f.read()
        print(content)
        f.close()
  3. 文件的操作写
    • w,wb,w+,w+b四种模式
      #没有文件,创建文件,写入内容
      #如果文件存在,先清空原文件内容,在写入新内容
      # w = open('写文件.txt',encoding='utf-8',mode='w')
      # w.write('随便写点东西吧')
      # w.close()

      #wb 主要操作非文本类文件
      f = open('美女.jpg',mode='rb')
      content = f.read()
      print(content)
      f.close()
      
      f1 = open('美女2.jpg',mode='wb')
      f1.write(content)
      f1.close()
  4. 文件操作的追加
    • a,a+b,a+,ab四种模式
      #a 追加 没有文件创建文件,追加内容
      f1 = open('文件的追加.txt',encoding='utf-8',mode='a')
      content = f1.write('文件正在运行...')
      f1.close()

      #a 有文件,在原文件追加内容
      f1 = open('文件的追加.txt',encoding='utf-8',mode='a')
      content1 = f1.write('alex,太白金星,oldboy\n老谭')
      f1.close()
  5. 文件操作的其他内容
    #读并追加
    f1 = open('文件的读写.txt',encoding='utf-8',mode='r+')
    content = f1.read()
    print(content)
    f1.write('是在是太无聊了')
    f1.close()
  6. 文件操作的其它功能
    总结:
    三个大方向:
    读,四种模式: r rb r+ r+b
    写,四种模式 : w,wb, w+,w+b
    追加 四种模式: a, ab, a+,a+b
    相应的功能:对文件句柄的操作:read read(n) readline() readlines() write()
    # tell 获取光标的位置 单位字节。
    f = open('文件的读写.txt', encoding='utf-8')
    print(f.tell())
    content = f.read()
    # print(content)
    print(f.tell())
    f.close()

    # seek 调整光标的位置
    f = open('文件的读写.txt', encoding='utf-8')
    f.seek(9)
    content1 = f.read()
    print(content1)
    f.close()
    
    # flush 强制刷新
    f = open('文件的其他功能', encoding='utf-8',mode='w')
    f.write('fdshdsjgsdlkjfdf')
    f.flush()
    f.close()
  7. 文件的改
    • 文件操作改的流程:
      1, 以读的模式打开原文件。
      2,以写的模式创建一个新文件。
      3,将原文件的内容读出来修改成新内容,写入新文件。
      4,将原文件删除。
      5,将新文件重命名成原文件。
    • 具体代码:
      '''
      1.以读的模式打开原文件。
      2.以写的模式创建一个新文件。
      3.将原文件的内容读出来修改新内容,写入新文件。
      4.将原文件删除
      5.将新文件重命名成原文件
      '''
      #low版
      # 1.以读的模式打开原文件。
      # 2.以写的模式创建一个新文件。
      with open('alex自述',encoding='utf-8',mode='r') as f1, open('alex自述.txt',encoding='utf-8',mode='w') as f2:
      #3.将原文件的内容读出来修改新内容,写入新文件。
      old_content = f1.read().strip()
      new_content = old_content.replace('alex','sb')
      f2.write(new_content)
      # 4.将原文件删除
      # # 5.将新文件重命名成原文件
      import os
      os.remove('alex自述')
      os.rename('alex自述.txt','alex自述')

      #进阶版
      # 1.以读的模式打开原文件。
      # 2.以写的模式创建一个新文件。
      with open('alex自述',encoding='utf-8',mode='r') as f1,\
          open('alex自述.txt',encoding='utf-8',mode='w') as  f2:
      #3.将原文件的内容读出来修改新内容,写入新文件。
          for line in f1:
              new_line = line.replace('alex','sb')
              f2.write(new_line)
      
      # 4.将原文件删除
      # # 5.将新文件重命名成原文件
      import os
      os.remove('alex自述')
      os.rename('alex自述.txt','alex自述')
      
      #关于清空的问题
      #关闭文件句柄,再次以w模式打开此文件时,才会清空

转载于:https://www.cnblogs.com/940531gbh/p/11276736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值