• 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','你的名字')
    
  • 相关阅读:
    octotree神器 For Github and GitLab 火狐插件
    实用篇如何使用github(本地、远程)满足基本需求
    PPA(Personal Package Archives)简介、兴起、使用
    Sourse Insight使用过程中的常使用功能简介
    Sourse Insight使用教程及常见的问题解决办法
    github 遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts问题解决
    二叉查找树的C语言实现(一)
    初识内核链表
    container_of 和 offsetof 宏详解
    用双向链表实现一个栈
  • 原文地址:https://www.cnblogs.com/wpcbk/p/8659890.html
Copyright © 2020-2023  润新知