• python 文件操作


    文件操作基本循的方式首先需要文件路径,其次对于文件的编码方式进行选择,最后执行操作。

    文件操作:

      1.文件路径:

        绝对路径:将文件的全部路径完全输入,从而查找到文件

        相对路径:在当前目录下打开,或查找文件

    f = open('C:你好.txt', mode='r',encoding= 'utf-8')
    s = f.read()
    print(s)
    f.close()
    #绝对路径查找
    
    f = open('你好.txt', mode='r',encoding= 'utf-8')
    s = f.read()
    print(s)
    f.close()
    #相对路径查找,注意需要在和文件在相同的目录下才能查找到.

       2.编码方式:

        基本的编码方式,utf-8,gbk等

        在打开文件之前需要确定文件的编码方式是什么,因此用encoding = ‘’来确认编码方式。

      3.操作方法:

        有只读  ‘r’,读写‘r+’,写读‘w+’,只写‘w’

    文件格式:

      f == 变量,表示问一个文件句柄,代表一个文件的开头。

      open是windows自带的系统功能,python调用打开文件,

      并且windows的默认编码方式为‘gbk’,不输入encoding时会自动使用‘gbk’编码

      liunx默认的编码方式为utf-8

      结尾务必带上f.close()

      #文件流程:打开文件--------产生文件句柄------对文件进行操作-------关闭文件

    文件的读写:

      1.读:

        ‘r’,只读模式,读的方式有五种:

        ’rb‘,二进制读取模式,主要用来对图片视频进行转化为二进制读取。

        'r+' 读写模式,读取之后在进入写入模式,并且光标随着读而移动

        ’r+b‘ 二进制读写模式,对图片视频等进行写入。

         1.全部读出来:  f.read()------占内存 

    f = open('C:你好.txt', mode='r',encoding= 'utf-8')
    s = f.read()  #全部读取
    print(s)
    f.close()
    

          2.一行一行读取:  f.readline() ------ 效率不太高

    f = open('C:你好.txt', mode='r',encoding= 'utf-8')#需要在c盘创建一个文件
    s = f.readline()
    print(s)
    print(s)
    print(s)
    print(s)
    f.close()
    

           3.将原文件的每一行作为一个列表的元素输出---------太占内存

    f = open('C:你好.txt', mode='r',encoding= 'utf-8')
    s = f.readlines()  #变成列表输出,每个元素都有
    在末尾 
    print(s)
    f.close()
    

         4.按照字符去读,在‘r’模式下,但是在‘rb‘模式下会按照字节的模式来读取

    f = open('C:你好.txt', mode='r',encoding= 'utf-8')
    s = f.read(5)# 取出前五个自字符
    print(s)#替换掉他!  #符号也算。
    f.close()

    f = open('C:你好.txt', mode='rb')#调整为rb模式的时候编码方式改变,用bytes类型读取,利用二进制解码,所以不需要编码。
    s = f.read(5)# 取出前五个自字符
    print(s)#'xe6x9bxbfxe6x8d'
    f.close()
    

         5.循环读取,读一行删一行,只占用一行内存。

    ('C:你好.txt', mode='r',encoding= 'utf-8')
    for i in f:
        print(i)
    f.close()
    

       

    2.写

      ’w‘ 只写入

      1.没有文件则会创建 一个新的文件,并写入内容。

      2.有文件的时候,将原文件内容清空并写入内容。

      ’w+‘先写入然后读取,写读,需要注意的是光标的移动问题。

      

      ’w+b‘写读,只是使用的是二进制的当时写读,并且能够处理图片等各种其他格式的文件。

    3.追加

      ’a‘ 只追加写模式,不可读;不存在则创建;存在则只追加内容,

      

      'a+'追加写读模式,先追加写入后再读取。

      

      ’a+b‘追加写度模式,并且使用二进制

    4.光标问题:
      在文件中写入内容时候,写入的地点由光标决定,

      f.tell() == 显示光标的位置#按照字节显示

      f.seek()== 更改光标的位置,按照字节更改! 

    5.其他方法:

      truncate方法: 截断数据,仅保留指定之前数据 

      writetable:判断文件是否可以写入

      readtable : 判断问价是否可以读取

    6.关闭问题:

      f.close()是在内存中关闭文件,有一定可能残留在应用程序里面,

      del f  是在程序中删除,完全清空。

    7.with open()as f:

      1.避免忘记关闭文件,此程序自动关闭。

      2.一次性操作多个文件句柄

      

    8#######重点!!

      所有输入的底层原理。

      1.将原文件读取到内存

      2.在内存中进行修改,形成新的字符串文件。

      3.将新的字符串写入新文件

      4.将源文件删除

      5.将新文件重命名成原文件。

    import os
    with open('你的名字',encoding = 'utf-8') as f1,
        open('你的名字.fuzhi',encoding = 'utf-8',mode ='w') as f2:
                s = f1.read()
                f2.write(s.resplace('你好','hello'))
    os.remove('你的名字')
    os.rename('你的名字.fuzhi','你的名字')
    
  • 相关阅读:
    选择结构
    Java基本语法
    Java开发实战经典
    限时福利丨全网最全Java视频教程合集(java学习路线+视频+配套资料)
    入选《2021爱分析·区域性银行数字化厂商全景报告》,网易云信助力南京银行打造转型标杆
    资讯|WebRTC M94 更新
    网易云信的音频共享技术 | 体验共享专题
    网易云信 NERTC 高清画质体验之 H.265的工程实践 | 体验共享技术专题
    Jvm-Sandbox-Repeater 推送配置详解
    Jvm-Sandbox-Repeater 拉取配置详解
  • 原文地址:https://www.cnblogs.com/wpcbk/p/8659890.html
Copyright © 2020-2023  润新知