python-文件读写


读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)
在这里插入图片描述

open方法

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)
完整形式:
在这里插入图片描述
参数说明:

  • file: 必需,文件路径(相对或者绝对路径)
  • mode: 可选,文件打开模式,默认为r
  • encoding: 一般使用utf8编码
  • errors: 报错级别
  • newline: 区分换行符
  • buffering: 设置缓冲
  • closefd: 传入的file参数类型

常用的mode

========= ===============================================================
Character Meaning
--------- ---------------------------------------------------------------
'r'       open for reading (default)
'w'       open for writing, truncating the file first
'x'       create a new file and open it for writing
'a'       open for writing, appending to the end of the file if it exists
'b'       binary mode
'+'       open a disk file for updating (reading and writing)

写文件

写入文件时,可以使用write()或writelines()方法。

if __name__ == '__main__':
    fp = open(r"F:\code\data.txt", "w",encoding="utf8")
    # write 往里写入字符串
    fp.write("2024 helloworld\n")
    print(fp.writable())
    fp.writelines("2024\n")
    # writelines可以写入字符串列表 把列表合并成大字符串
    fp.writelines(["2024", "07", "17"])
    fp.close()
#输出结果:True

读文件

if __name__ == '__main__':
    f2 = open(r"./data.txt", "r", encoding="utf8")

    # read 不传参 取所以数据
    # read 传参 取几个字符
    # 读取时候 如果同一次读取 就继续往后读
    print(f2.read(1))
    print(f2.read(2))
    print(f2.readline())
    print(f2.readline())
    # readline 不带参数 读取一行
    # 带参数 读取几个字符
    print(f2.readline(6))
    # 如果参数过大 也不会超过这一行
    print(f2.readline(100))
    # readlines 返回的参数列表
    # 参数没到一行 读一行 参数超过一行读完读下一行
    print(f2.readlines(10))
    # 读取所有的行 存入列表中
    print(f2.readlines())
    f2.close()
#输出结果:
#2
#02
#4 helloworld

#2024

#202407
#17
#[]
#[]

with语句

with 语句是 Python 中的一个非常有用的特性,它主要用于管理资源,比如文件、网络连接、线程锁等。通过使用 with 语句,可以确保所使用的资源在使用后能够正确地被清理或释放,即使在发生异常的情况下也是如此。这种方式避免了因为忘记释放资源而导致的资源泄露问题。

if __name__ == '__main__':
    for i in range(10):
        pass
    # with open一个文件不需要关闭文件
    # 如果能够一次性写完 用这个比较好
    with open("./data.txt", "r", encoding="utf8") as f3:
        print(f3.readline(20))
    pass
#输出结果:2024 helloworld

注意事项

  • 使用with语句打开文件是一个好习惯,因为它可以确保文件在使用后会被正确关闭,即使在读写文件时发生异常也是如此。
  • 读取文件时,如果文件很大,不建议一次性读取整个文件到内存中,而是应该使用逐行读取或分批读取的方式来减少内存使用。
  • 写入文件时,如果文件不存在,open()函数在’w’、'a’等模式下会自动创建文件。如果文件已存在,'w’模式会覆盖原有内容,'a’模式会在文件末尾追加内容。
  • 当处理文本文件时,默认会以系统的默认编码(如UTF-8在多数现代系统中)来读取和写入文件。如果需要处理特定编码的文件,可以在open()函数中使用encoding参数指定编码方式。例如,open(‘example.txt’, ‘r’, encoding=‘utf-8’)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值