ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

文件的操作

2019-05-09 16:40:58  阅读:175  来源: 互联网

标签:文件 句柄 追加 操作 原文件 open


  • 文件操作的初识
    • a.txt
    • 利用python代码去操作文件.(利用python代码写一个很low的软件,操作文件.)
      • 文件路径:path
      • 打开方式:mode(r(读),w(写),a(追加),读写,写读)
      • 编码方式:utf-8 ,gbk,gb2312....
    • open

      open 内置函数,open底层调用的是操作系统的接口
      f1,变量. (f1,fh,file,file_handler,f_h) 文件句柄.通过对文件的任何操作都会通过文件句柄. 的方式.
      encoding:可以不写,不写参数,默认编码本.默认编码本:操作系统的默认的编码
      ****文件句柄****是一个迭代器
      windows:gbk
      linux:utf -8
      mac: ust -8
      f.close (关闭文件)
    • 文件操作三步
      1. 打开文件
      2. 对文件句柄的操作
      3. 关闭文件
    • 文件报错:
      1. unicodeDecodeError 错误,编译错误
      2. 路径分隔符产生异议: 路径前面加r
  • 文件操作的读
    • r,rb(bytes模式读),r+(读写),r+b...四种模式
      • r
        • read() 全部读取出来
        • read(n) 读取n个字符
        • readline() 读取一行
        • readlines() 返回一个列表,列表中的每个元素是原文件的每一行
        • for i in f.
      • rb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)
  • 文件操作的写
    • w,wb,w+,w+b
      • w
        • 没有文件创建文件,有文件则先清空.再写入新内容.
      • wb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)
  • 文件操作的追加
    • a,ab,a+,a+b
      • a.有文件在原文件追加内容,没文件创建文件.追加内容
  • 文件操作的其他模式
    • r+ :读并追加.先读后写.先写后读会导致写的时候光标在最前面.覆盖.所有顺序不能错,必须先读后追加
  • 文件操作的其他功能
    • 总结
      • 三个大方向(读,写,追加)
      • 读 四种模式:r rb r+ r+b
      • 写 四种模式:w wb w+ w+b
      • 追加 四种模式:a ab a+ a+b
        相应的功能:对文件句柄的操作. read read() readline() readlines() write()
      • tell() 查看光标的当前位置(字节)
      • seek(n) 调整光标的位置 n =0 调整光标到开始.n = -2光标调整到最后
      • flush 强制刷新(保存) 在写的后面一般f.flush()
  • 打开文件的另一种方式
    • with open
      • 优点:不用手动关闭文件句柄
      • 优点:可以同时打开多个文件.
  • 有关清空:
    • 关闭文件句柄,再次以w模式打开此文件时,才会清空.
  • 文件操作的改
    1. 以读的模式打开源文件.
    2. 以写的模式创建一个新文件
    3. 将原文件的内容读出来修改成新内容.写入新文件.
    4. 将原文件删除.
    5. 将新文件重命名为原文件.


      import os
      with open("alex",encoding="utf -8") as f1, open("alex1",encoding="utf8",mode="w")as f2:
      for a in f1:

       lin = a.replace("SB","sb")
       f2.write(lin)

    os.remove("alex")
    os.rename("alex1","alex")

标签:文件,句柄,追加,操作,原文件,open
来源: https://www.cnblogs.com/luyi84895838/p/10839279.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有