• 文件操作 08


    文件操作

    一 , 文件的内部内容进行操作

      1.open('文件路径',mode='模式(默认是只读)',encoding='编码')

          路径必须写上后缀(.txt等)

          f = open('d:/小护士.txt',mode='r',encoding='utf-8')

          content = f.readlines()

          line1 = f.readline().strip() # 空白, 空格, ,

          print(line1)

            读r 只能读 不能写

          1.open('文件路径',mode='模式(默认是只读)',encoding='编码')

            路径必须写上后缀(.txt等)

            f = open('d:/小护士.txt',mode='r',encoding='utf-8')

            content = f.readlines()

            line1 = f.readline().strip() # 空白, 空格, ,

            print(line1)

            f.close

          f 是一个可迭代对象

          f = open('d:/周润发大战奥特曼.txt',mode='r',encoding='utf-8' )

          for line in f : # 内部其实调用的是readline()

            print(line)

          f.close() # 一定记得写上

      写w 只能写 不能读

          f = open('d:/sylar.txt',mode='w',encoding='utf-8')

          f.write('周笔畅 ')

          f.write('胡辣汤 ')

          f.write('实付款 ')

          f.flush()

          f.close()

          f.write() # 先清空 再写入

          追加a 追加写 只能写入

            f = open('d:/sylar.txt',mode='a',encoding='utf-8')

            f.write('娃哈哈') # 追加写

            f.write('爽歪歪')

            f.flush()

            f.close()

          b : bytes 这个时候处理文件的是字节

            操作非文本文件的时候用带b的 在rb模式下,不能选择encoding字符集

            rb

              作用 : 在读取非文本文件的时候,比如读取MP3.图像,视频等信息的时候就需要用到rb.因为这种数据是没办法直接显示出来的.在文件上传下载时还会用到还有看的直播.实际上用的就是这种数据.

            wb

            ab

        文件拷贝

            f1 = open('d:/桌面背景.jpg',mode='rb')

            f2 = open('d:/abc.jpg'mode='wb')

            for line in f1:

            f2.write(line)

            f1.close()

            f2.flush()

            f2.close()

          文件的路径

            1. 绝对路径

              1.从磁盘根目录寻找

              2.网络上路径

            2.相对路径# 更推荐用相对路径 因为把程序拷给别人用的时候.直接把项目考走就能运行,如果用绝对路径.还需要拷外部文件.

              相对于当前你这个程序所在的文件夹.(用的最多的)

              绝对路径相对于相对路径来说

        r+ # 带加号的使用频率最高的 读写模式

          读写模式

          如果执行了读操作 那么写操作的时候都是写在文件的末尾和光标没关系

          正确用法 先读 后写

        w+

          很少用 需要移动光标

        a+ 追加读模式

          f = open('菜单',mode='a+',encoding='utf-8')

            f.write('韭菜鸡蛋饺子')

            f.seek(0)

            content = f.read()

            print(content)

      光标 使用 tell 可以知道 光标在哪里 单位

        seek()可以移动光标

        r: 默认光标在开头

        读写的时候单位是字符 但是光标移动的单位是字节

        光标移动到末尾 seek(0,2)

        seek(偏移量,位置)

          位置 : 0开头 , 1当前位置 , 2末尾

      truncate() 截断文件

          f = open('我的天哪', mode='r+', encoding='utf-8')

          f seek(9)

          f.truncate(12) # 如果没有参数. 按照光标来截断. 如果有参数. 截断到参数位置

          f.flush()

          f.close()

          注意 : 在r+模式下.如果读取了内容 . 不论读取内容多少 , 光标显示的是多少.再写入或者操作文件的时候都是在结尾进行的操作

          所以如果想要截断操作.要先挪动光标 挪动到想要截断的位置,然后进行截断,关于truncate(n),如果给了n则从头开头开始截断, 如果不给n,则从当前位置截断,后面的内容会被删除.

    二 , 修改文件 过程 将文件中的内容读取到内存中将信息修改完毕,然后将源文件删除,将新文件的名字改为老文件的名字.

        语句为

          import os

          with open('alex',mode='r',encoding='utf-8') as f1,

            open('alex_副本',mode='w', encoding='utf-8') as f2: # 这种写法可以省去 f1.flush() f1.close() 语句

            for line in f1:

              new line = line.replace('good','sb')

              f2.write(new line)

            os.remove('alex')

          os.rename('alex_副本','alex')

  • 相关阅读:
    HearthBuddy投降插件2019-11-01的使用
    正则表达式在线分析 regex online analyzer
    Tips to write better Conditionals in JavaScript
    The fileSyncDll.ps1 is not digitally signed. You cannot run this script on the current system.
    Cannot capture jmeter traffic in fiddler
    JMETER + POST + anti-forgery token
    input type color
    HearthBuddy修改系统时间
    What are all the possible values for HTTP “Content-Type” header?
    UDK性能优化
  • 原文地址:https://www.cnblogs.com/f-g-f/p/9695830.html
Copyright © 2020-2023  润新知