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

    ## 03 今日内容
    
    1. 文件操作的初识
    
       + 护士空姐少妇的联系方式.txt 
    
       + 利用python代码写一个很low的软件,去操作文件。
    
         + 文件路径:path
         + 打开方式:读,写,追加,读写,写读......
         + 编码方式:utf-8,gbk ,gb2312......
    
       + ```python
         f1 = open('d:主妇空姐模特联系方式.txt',encoding='utf-8',mode='r')
         content = f1.read()
         print(content)
         f1.close()
         ```
    
       + 代码解释:
    
         ```
         open 内置函数,open底层调用的是操作系统的接口。
         f1,变量,f1,fh,file_handler,f_h,文件句柄。 对文件进行的任何操作,都得通过文件句柄. 的方式。
         encoding:可以不写,不写参数,默认编码本:操作系统的默认的编码
         windows: gbk。
         linux: utf-8.
         mac : utf-8.
         f1.close() 关闭文件句柄。
         ```
    
       + 文件操作的三部曲:
    
         + 1, 打开文件。
         + 2,对文件句柄进行相应操作。
         + 3,关闭文件。
    
       + 报错原因:
    
         + UnicodeDecodeError:文件存储时与文件打开时编码本运用不一致。
    
         + 第二个错误: 路径分隔符产生的问题:
    
           + ```
             r'C:UsersoldboyDesktop主妇空姐模特联系方式.txt'
             ```
    
    2. 文件操作的读
    
       r , rb, r+,r+b 四种模式
    
       ​    r:  read()**                                    read(n) readline() readlines() 
    
       ​        for ***
    
       ​    rb: 操作的是非文本的文件。图片,视频,音频。
    
       ```python
       # read 全部读出来  **
       # f = open('文件的读', encoding='utf-8')
       # content = f.read()
       # print(content,type(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())
       # print(f.readline())
       # print(f.readline())
       # f.close()
       
       # readlines() 返回一个列表,列表中的每个元素是源文件的每一行。
       # f = open('文件的读', encoding='utf-8')
       # l1 = f.readlines()
       # for line in l1:
       #     print(line)
       # # print(l1)
       # f.close()
       
       # for 读取
       # f = open('文件的读', encoding='utf-8')
       # # ['abc太白金星最帅
    ', '老男孩最好的老师
    ', '老男孩教育是最好的学校
    ', 'fhsjdkfha
    ', 'fhdsfads
    ']
       # for line in f:
       #     print(line)
       # f.close()
       
       # f = open('美女.jpg',mode='rb')
       # content = f.read()
       # print(content)
       # f.close()
       ```
    
       
    
    3. 文件操作的写
    
       w,wb, w+,w+b 四种模式
    
       ```python
       # 没有文件,创建文件,写入内容
       # 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',mode='rb')
       # content = f.read()
       # # print(content)
       # f.close()
       #
       # f1 = open('美女2.jpg',mode='wb')
       # f1.write(content)
       # f1.close()
       
       ```
    
       
    
    4. 文件操作的追加
    
       a, ab, a+,a+b 四种模式
    
       ```python
       # 没有文件创建文件,追加内容
       # f = open('文件的追加',encoding='utf-8',mode='a')
       # f.write('太白最帅....')
       # f.close()
       
       # 有文件,在原文件的最后面追加内容。
       # f = open('文件的追加',encoding='utf-8',mode='a')
       # f.write('大壮,舒淇,b哥,雪飞')
       # f.close()
       
       ```
    
       
    
    5. 文件操作的其他模式  r+
    
       ```python
       # 读并追加  # 顺序不能错误。
       # f = open('文件的读写', encoding='utf-8', mode='r+')
       # content = f.read()
       # print(content)
       # f.write('人的一切痛苦,本质都是对自己无能的愤怒。')
       # f.close()
       
       # 错误示例:
       # f = open('文件的读写', encoding='utf-8', mode='r+')
       # f.write('人的一切痛苦,,,本质都是对自己无能的愤怒,,,')
       # content = f.read()
       # print(content)
       # f.close()
       ```
    
       
    
    6. 文件操作的其他功能
    
       总结:
    
       ​    三个大方向: 
    
       读,四种模式: r rb r+ r+b
    
       写,四种模式 :  w,wb, w+,w+b 
    
       追加 四种模式:  a, ab, a+,a+b
    
       相应的功能:对文件句柄的操作:read read(n) readline() readlines() write()  
    
       ```python
       # tell 获取光标的位置 单位字节。
       # f = open('文件的读写', encoding='utf-8')
       # print(f.tell())
       # content = f.read()
       # # print(content)
       # print(f.tell())
       # 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('fdshdsjgsdlkjfdf')
       # f.flush()
       # f.close()
       ```
    
       
    
    7. 打开文件的另一种方式
    
       ```python
       # 优点1: 不用手动关闭文件句柄
       # with open('文件的读',encoding='utf-8') as f1:
       #     print(f1.read())
       
       # 优点2:
       with open('文件的读', encoding='utf-8') as f1,
               open('文件的写', encoding='utf-8', mode='w')as f2:
           print(f1.read())
           f2.write('hfdsjkghkajhsdjg')
       
       # 缺点:待续。
       ```
    
       
    
    8. 文件操作的改
    
       + 文件操作改的流程:
         1, 以读的模式打开原文件。
         2,以写的模式创建一个新文件。
         3,将原文件的内容读出来修改成新内容,写入新文件。
         4,将原文件删除。
         5,将新文件重命名成原文件。
       + 具体代码:
    
       ```python
       # low版
       # import os
       # # 1, 以读的模式打开原文件。
       # # 2,以写的模式创建一个新文件。
       # with open('alex自述',encoding='utf-8') as f1,
       #     open('alex自述.bak',encoding='utf-8',mode='w') as f2:
       # # 3,将原文件的内容读出来修改成新内容,写入新文件。
       #     old_content = f1.read()
       #     new_content = old_content.replace('alex', 'SB')
       #     f2.write(new_content)
       # os.remove('alex自述')
       # os.rename('alex自述.bak','alex自述')
       
       
       # 进阶版:
       import os
       # 1, 以读的模式打开原文件。
       # 2,以写的模式创建一个新文件。
       with open('alex自述',encoding='utf-8') as f1,
           open('alex自述.bak',encoding='utf-8',mode='w') as f2:
       # 3,将原文件的内容读出来修改成新内容,写入新文件。
           for line in f1:
               # 第一次循环 SB是老男孩python发起人,创建人。
               new_line = line.replace('SB', 'alex')
               f2.write(new_line)
       os.remove('alex自述')
       os.rename('alex自述.bak','alex自述')
       
       
       
       # 有关清空的问题:
       # 关闭文件句柄,再次以w模式打开此文件时,才会清空。
       # with open('文件的写', encoding='utf-8',mode='w') as f1:
       #     for i in range(9):
       #         f1.write('恢复贷款首付款')
       ```
    
    ## 04 今日总结
    
    + 文件操作:
      + **r** w a rb wb r+ ab 重点记
      + read()  write tell seek  flush
      + 文件的改的代码必须会默写。


    1. 文件操作初识

    三部曲:

    + 打开文件open()。
    + 操作文件(文件句柄进行操作)。
    + 关闭文件。
    + 文件路径path,编码方式:encoding, mode:.

    2. 读,写,追加。

    + 读: r rb r+,r+b
    + read()
    + read(n) :
    + r: read(n) n 是字符。
    + rb:read(n) n 字节。
    + readline() strip() ' , , '
    + readlines() ['第一行 ','第二行 ',]
    + for 循环 对文件句柄。
    + 写:w,wb,w+,w+b
    + w: 没有文件创建新文件,写入内容。
    + w: 有文件,先清空,在写入新内容。
    + 追加:a,ab,a+,a+b
    - a: 没有文件创建新文件,追加内容。
    - a: 有文件,追加新内容。

    3. r+: 先读,后写。

    4. 其他功能:tell() seek() flush()

    5. with open() as f1:

    6. 文件的改的操作。




  • 相关阅读:
    问题 A: 【递归入门】全排列
    第一个struct2程序(2)
    第一个struct2程序
    Java学习 第二节
    重学Java
    Servlet过滤器
    struct2
    Java web struct入门基础知识
    one by one 项目 part 6
    软件工程导论 桩模块和驱动模块
  • 原文地址:https://www.cnblogs.com/zengluo/p/13128948.html
Copyright © 2011-2022 走看看