• python-文件操作


    基本的文件操作

    什么是文件

    文件是操作系统为用户或应用程序提供的虚拟的单位,文件的操作的核心就是:读/写。

    为什么要有文件

    数据都保存在硬盘中,我们需要读写数据,就要去操作硬盘,而通过操作文件我们就可以操作硬盘。

    python 如何用文件

    从硬盘中读取数据

    python中使用open(‘文件路径’)方法可以打开某个具体的文件,用open()打开文件后,我们还需要手动释放文件对操作系统的占用。

    f = open(r'C:Users
    ayndDesktop	est.txt',encoding='gbk')  # r 表示后面的特殊字符,都是普通字符。 encoding='gbk',代表这个文件是用gbk编码方式来打开,我们需要记住,用什么编码方式写的,就用什么编码方式打开。
    print(f.read())
    f.close() # 如果使用del f ,这个是删除f这个变量名的内存占用,并没有关闭文件在操作系统中的占用;而是用f.close后,不仅删除了变量名f,并且也关闭了文件,这个时候文件对于操作系统来讲是关闭状态的
    
    1. 打开文件的那一瞬间是在操作硬盘和内存
    2. python3能操控硬盘和内存吗?一定不能,因为他是应用程序
    3. 你看到的python3打开文件并操控,都是基于操作系统的
    4. 然后你只是使用了del f,只是在删除f这个变量名的内存占用
    5. 但是我们从来都没有告诉操作系统关闭文件
    6. 所以我们必须使用f.close()关闭文件
    

    如果使用文件(打开文件的步骤)

    1. 打开文件
    2. 读写数据
    3. 保存
    4. 关闭文件

    绝对路径和相对路径

    • 绝对路径:从根目录开始,一直到需要的文件路径。

      ‘C:Users ayndDesktop est.txt’

    • 相对路径:从当前文件夹开始,到需要的文件路径,只需要输入文件路径,要打开的文件必须和运行的py文件必须得在一个文件夹下。

      ‘test.txt

    文件的三种打开方式

    文件操作的基础模式有三种

    默认的操作模式为r模式

    • r模式为read
    • w模式为write
    • a模式为append

    文件读写内容的格式有两种

    默认的读写内容的模式为b模式

    • t模式为text
    • b模式为bytes

    注意:t、b这两种模式均不能单独使用,都需要与r/w/a之一连用,如:rt/rb/wt/at(常用),wb/ab(不常用)。

    文件打开模式之r模式

    1. r:read ,只读模式,只能读,不能写,文件不存在时报错。
    f = open(r'C:Users
    ayndDesktop	est.txt',mode='r',encoding='gbk')
    print(f.read()) # 一次性打印完所有,如果碰到数据比较大的时候,容易内存溢出。
    666
    帅刷刷
    
    1. f.read.line()

      f = open(r'C:Users
      ayndDesktop	est.txt',mode='r',encoding='gbk')
      print(f.readline()) # 只打印一行
      print(f.readline())
      f.close()
      
      666
      
      帅刷刷
      
    2. ‘rb’模式

    f = open(r'C:Users
    ayndDesktop	est.txt',mode='rb') # 因为rb是字节模式,也是就二进制,所以不能再加入指定的字符编码。
    print(f.read())
    b'666
    xcbxa7xcbxa2xcbxa2' #b表示,写的字符串为二进制,在打印的时候不需要使用终端的编码处理,直接打印原生的二进制即可
    

    文件打开模式之w模式

    w:write,只能写,不能读,文件存在的时候会清空文件后再写入内容;文件不存在的时候会创建文件后写入内容。

    w : write

    fw = open(r'C:Users
    ayndDesktop	est.txt',mode = 'w',encoding='gbk')
    fw.write('ryan,全宇宙最流弊')
    fw.close()
    
    ryan,全宇宙最流弊
    

    文件打开模式之a模式

    a:append ,追加,文件存在,则在文件的末端写入内容;文件不存在的时候会创建文件后写入内容。

    fa = open(r'C:Users
    ayndDesktop	est.txt',mode = 'a',encoding='gbk')
    data1=fa.write('
    rayn流弊666')
    print(data1)
    
    ryan,全宇宙最流弊
    rayn流弊666
    

    with管理文件操作上下文(文件的拷贝)

    1. 之前我们用open()方法来操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实为我们可以更方便的打开文件,即使用python提供的上下文管理工具---with open().
    with open(r'C:Users
    ayndDesktop	est.txt',mode = 'r',encoding='gbk') as fr:
        data1 = fr.read()
        print(data1)
    
    ryan,全宇宙最流弊
    rayn流弊666
    
    1. with open()方法不仅提供自动释放操作系统的占用,并且可使用逗号分隔(, )一次性打开多个文件,实现文件的快速拷贝。
    with open(r'C:Users
    ayndDesktop	est.txt','r',encoding='gbk') as fr,
        open(r'C:Users
    ayndDesktop	est1.txt','w',encoding='gbk') as fw:
        fw.write(fr.read())
    

    这样在桌面会自动新建了test1.txt 文档,里面的内容就是新的test.txt的内容。

    补充

    我们对文件做的内容修改,其实并不是在原文件上进行的修改,而是每次修改都会新建一个新的文件,然后把修改后的内容放入进新建的文件,然后删除原文件,再把新文件命名成原文件。这就是我们在做word、Excel等文档操作时,会有缓存文件,这个缓存文件就是新建的文件。

    with open(r'test.txt','r',encoding='utf8') as fr,
        open(r'test1.txt','w',encoding='utf8') as fw:
        data = fr.read()
        print(data)
        data1 = data.replace('ry','rayn')
        fw.write(data1)
    
    import os
    os.remove('test.txt')
    os.rename('test1.txt','test.txt')
    

    这样test1.txt就替换成了test.txt

  • 相关阅读:
    oracle nvl,to_char 函数(二)
    GridView的使用技巧
    asp.net应用程序性能的提高方案
    浅谈 ViewState
    最为关心的问题,hbase查询一条数据的过程.
    HBase的弊端。
    拙建:(mapreduce 如何来分步统计词频)
    终于找到hbase分布式存储数据的方式.
    迷局一般的openjdk6jdk!
    IT事业不好走,大家在虚拟的世界,记得回到真实的世界,不然你将会成为下一个张孝祥.
  • 原文地址:https://www.cnblogs.com/raynduan/p/10940411.html
Copyright © 2020-2023  润新知