• python 基础学习笔记(5)--文件操作


    **python 的文件操作**

    - [ ] 使用python来读写文件是非常简单的操作,我们使用open()来打开一个文件,获取到文件的语柄,然后通过文件语柄就可以进行各种各样的操作了。
    - [ ] 打开文件的方式:

             > r,w,a ;
             > r+,w+,a+ ;
             > rb,wb,ab ;
             > r+b,w+b,a+b;


    说到打开文件,我们要了解一些绝对路径和相对路径的区别

                > 绝对路径:从根目录下开始一直到文件名。
                > 相对路径:同一个文件夹下面的文件,直接写文件名就可以。

    1. r模式:只读操作。
                > `f = open('西游记.txt', mode='r', encoding= 'utf-8')` #打开文件
                > `content = f.read()` #读取文件
                > `print(content)` #显示文件
                > `f.close()` #关闭文件

    ‘open函数’  中第一个参数放入的是要打开的文件名字,第二个参数是要对这个文件进行的操作,第三个参数是用什么编码方式打开文件的内容。
    ‘f’   可以写成任意变量等,他被称为:文件语柄,文件操作符,或者文件操作对象等。
    ‘open’   是python 调用的操作系统(Windows,Linux,等)的功能,而Windows 的默认编码方式为 gbk,Linux默认编码方式为 utf-8,所以你的文件用什么编码保存的,就用什么方式打开,一般都是utf-8.
    ‘mode’   为打开方式,常见的有 r,w,a,r+,w+,a+,rb,wb,ab,等
    ‘.close()’   为关闭文件


    2. rb 模式。

               > f = open('西游记',mode= 'rb')
               > content = f.read()
               > print(content) 
               > f.close

               > 结果
               > 形如:
               > b'xe6xa0x87xe9xa2x98xe5xbex88xe5xa5xbd'

    rb 读出来的数据是bytes类型,在rb模式下,不能encoding 字符集。(作用:在读取非文本文件的时候,比如要读取mp3,图像,视频等信息的时候就需要用到rb,因为这种数据是没有办法直接显示出来的,这个字节的模式是用于传输和存储。)


    3. 读取操作

              > read():是将文件中所有的内容都读取。其中 read()还可以指定我们想要读取的内容数量
              > readline():读取每次只读取一行,注意点:readline()读取出来的数据在后面都有一个
              > readlines():将每一行形成一个元素,放到一个列表中,将所有的内容全部读出来,如果文件很大,占内存很大,容易崩盘
              > 注意,读完的文件语柄一定要关闭


    4. 写模式:

              > 1.覆盖写:(只写)
              > `f = open('西游记', mode= 'w', encoding='utf-8')`
              > `f.write('猪八戒')`
              > `f.flush()`
              > `f.close()`
              > 结果
              > 当我们选着使用w模式的时候,再打开文件的时候就会把文件中的所有内容清空,然后在操作。
              > 所以文件中仅剩:猪八戒
              > (注意点:如果文件不存在使用‘w’模式会创建文件)

              > wb 模式:不可元指定打开文件的编辑,但是写文件的时候必须将字符串转化成utf-8的bytes数据

    5. 追加

    - [ ] 只要是a,ab,a+都是在文件的末尾写入,不论光标在任何位置。
    - [ ] 在追加模式下我们写入的内容追加在文件的末尾。
    - [ ] a模式,如果文件不存在就会创建一个新的文件。

    6. r+读写模式:对于读写模式,必须是先读后写,因为光标默认的在开头的位置,当读完了以后再进行写入,使用频率最高的模式就是r+。
    > 深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入
    或者操作文件的时候都是在结尾进行的操作.


    7. w+写读模式:先将所有的内容清空,然后再写入,最后读取,但是读取的内容是空的,不常用。


    8. 追加读(a+,a+b):a+模式下,不论是先读还是后读,都是读不到数据的

    **其他操作**

    - seek():

    > - seek(n)光标移动到n位置,注意: 移动单位是byte,所有如果是utf-8的中文部分要是3的倍数
    > - 通常我们使用seek都是移动到开头或者结尾移动到开头:seek(0,0) 可以看做成seek(0)
    > - seek(6)这种如果是单数并且不是0的就是按照字节来移动光标
    > - 移动到结尾:seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移,默认是0,表示开头,1表示当前位置,2表示结尾


    - tell():
    使用tell()可以帮我们获取当前光标在什么位置


    **以上就是基本的python文件操作**

  • 相关阅读:
    Oracle 树操作(select…start with…connect by…prior)
    ORACLE序列的使用总结
    TNS-00512: Address already in use-TNS-12542: TNS:address already in use
    zabbix server is not running: the information displayed may not be current
    fuser:用文件或者套接口表示进程
    E514:write error(file system full?)
    Oracle中drop user和drop user cascade的区别
    Oracle字符集查看
    k-means聚类算法C++实现
    名校公开课网站汇总
  • 原文地址:https://www.cnblogs.com/haoshaoqian/p/11163174.html
Copyright © 2020-2023  润新知