• 菜鸟教程《Python 3 教程》笔记(18):File(文件)方法


    笔记带有个人侧重点,不追求面面俱到。

    18 File(文件)方法

    出处: 菜鸟教程 - Python3 File(文件) 方法

    部分内容可以参考上一章节:菜鸟教程《Python 3 教程》笔记(17):输入和输出

    18.1 open() 方法

    open() 方法用于打开一个文件,并返回文件对象。在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError

    使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

    语法:

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    
    • 1

    参数:

    • file: 必需,文件路径(相对或者绝对路径);
    • mode: 可选,文件打开模式;
    • buffering: 设置缓冲;
    • encoding: 一般使用utf8;
    • errors: 报错级别;
    • newline: 区分换行符;
    • closefd: 传入的file参数类型;
    • opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

    18.2 file 对象

    18.2.1 flush()

    描述:

    flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要被动的等待输出缓冲区写入。

    一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

    实例:

    f = open("runoob.txt", "wb")
    f.flush()
    f.close()
    
    • 1
    • 2
    • 3

    18.2.2 fileno()

    描述:

    fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作。

    返回值:

    返回文件描述符。

    实例:

    >>> f = open("runoob.txt", "wb")
    >>> f.fileno()
    3
    >>> f.close()
    
    • 1
    • 2
    • 3
    • 4

    18.2.3 isatty()

    描述:

    isatty() 方法检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False。

    返回值:

    如果连接到一个终端设备返回 True,否则返回 False。

    实例:

    >>> f = open("runoob.txt", "wb")
    >>> f.isatty()
    False
    >>> f.close()
    
    • 1
    • 2
    • 3
    • 4

    18.2.4 truncate()

    描述:

    truncate() 方法用于从文件的首行首字节开始截断,截断文件为 size 个字节,无 size 表示从当前位置截断至末尾;截断之后,后面的所有字节被删除,其中,Widnows 系统下的换行代表2个字节大小。

    语法:

    fileObject.truncate([size])
    
    • 1

    实例:

    文件 runoob.txt 的内容:

    1:www.runoob.com
    2:www.runoob.com
    3:www.runoob.com
    4:www.runoob.com
    5:www.runoob.com
    
    • 1
    • 2
    • 3
    • 4
    • 5

    操作:

    # python 3.10.8
    >>> f = open("runoob.txt", "r+")
    >>> f.truncate(30)
    30
    >>> f.read()
    '1:www.runoob.com\n2:www.runoob'
    >>> f.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    处理后,文件 runoob.txt 的内容:

    1:www.runoob.com
    2:www.runoob
    
    • 1
    • 2

    18.2.5 write()

    描述:

    write() 方法用于向文件中写入指定字符串。

    在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时在文件中是看不到写入的内容的。

    如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错:TypeError: a bytes-like object is required, not 'str'

    语法:

    fileObject.write(str)
    
    • 1

    返回值:

    返回的是写入的字符长度。

    实例:

    >>> f = open("runoob.txt", "r+")
    >>> f.write("runoob")
    6
    >>> f.flush()
    >>> f.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    18.2.6 writelines()

    描述:

    writelines() 方法用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表。换行需要制定换行符 \n

    语法:

    fileObject.writelines(seq)
    
    • 1

    参数:

    • seq – 要写入文件的字符串序列。

    实例:

    >>> f = open("runoob.txt", "w")
    >>> f.writelines(["1","2","3\n","4"])
    >>> f.close()
    
    • 1
    • 2
    • 3

    处理后,文件 runoob.txt 的内容:

    123
    4
    
    • 1
    • 2
  • 相关阅读:
    深度探讨网络安全:挑战、防御策略与实战案例
    01_SHELL编程之变量定义(二)
    python语句如何换行和字符串太长如何换行
    《深入浅出.NET框架设计与实现》笔记6.3——ASP.NET Core应用程序多种运行模式之三——桌面应用程序
    深入React源码揭开渲染更新流程的面纱
    iOS 关于UITableView常见使用方法
    kubesphere
    Linux进程管理和计划任务与系统备份恢复
    拍摄视频的时候相机断电导致视频文件损坏,怎么修复
    无网络情况下,如何使用Docker镜像安装软件?
  • 原文地址:https://blog.csdn.net/weixin_44254041/article/details/132701297