Welcome to my blog.|

Khru

园龄:2年11个月粉丝:22关注:1

2022-09-01 17:17阅读: 36评论: 0推荐: 0

Python-文件操作

文件操作

打开文件

  • open(file, mode='r', encoding=None, errors=None)

    1. file: 表示要打开的文件, 可以是字符串或整数.
    2. mode: 设置文件打开模式. 可以进行组合(如mode='rt', 只读文本文件).
    3. encoding: 指定打开文件时的文件编码, 默认是UTF-8, 主要用于打开文本文件.
    4. errors: 指定在文本文件发生编码错误时如何处理. errors="ignore", 表示忽略错误,程序继续执行.
    f = open('test.txt', 'w')
    write("Hello")
    print("1. 创建文件, 写入Hello")
    f = open('test.txt', 'a')
    f.write(" World")
    print("2. 追加 World")
    文件打开模式 说明
    mode='t' 文本文件模式.
    mode='b' 二进制文件模式.
    mode='r' 只读模式.
    mode='w' 只写模式,不能读内容. 如果文件不存在, 则创建文件; 如果文件存在, 则覆盖文件的内容.
    mode='x' 独占创建模式. 如果文件不存在, 则创建并以写入模式打开; 如果文件存在, 则引发FileExistsError异常.
    mode='a' 追加模式, 不能读内容. 如果文件不存在, 则创建文件; 如果文件存在, 则在文件末尾追加.
    mode='+' 更新(读写)模式, 必须与r, w或a组合使用, 才能设置文件为读写模式.

关闭文件

  • close(): 在打开文件后, 如果不再使用该文件, 则需将其关闭.

    f_name = "test.txt"
    f = None
    try:
    f = open(f_name, 'r')
    print("打开文件成功. ")
    content = f.read()
    print(content)
    except FileNotFoundError:
    print("文件不存在! ")
    except OSError:
    print("处理OSError异常")
    finally:
    if f is not None:
    f.close()
    print("文件已关闭. ")
  • with as代码块: 在as后面声明一个资源变量, 代码块结束后自动释放资源.

    f_name = "test.txt"
    with open(f_name, 'r') as f:
    content = f.read()
    print(content)

读写文本文件

  • read(size=-1): 从文件中读取字符串. size限制读取的字符数, 默认没有限制.

  • readline(size=-1): 在读取到换行符或文件尾时返回单行字符串. 如果已经到文件尾, 则返回一个空字符串.

  • readlines(): 读取文件数据到一个字符串列表中, 每一行数据都是列表的一个元素.

  • write(s): 将字符串s写入文件, 并返回写入的字符数.

  • writelines(lines): 向文件中写入一个字符串列表. 不添加行分隔符, 因此通常为每一个末尾都提供行分隔符,

  • flush(): 刷新写缓冲区, 在文件没有关闭的情况下将数据写入文件中.

    f_name = r"test.txt"
    with open(f_name, 'r', encoding='gbk') as f:
    lines = f.readlines()
    print("读取成功: ")
    print(lines)
    copy_name = r"copy.txt"
    with open(copy_name, 'w', encoding='utf-8') as c:
    c.writelines(lines)
    print("写入成功")
    # 读取成功:
    # ['Hello. \n', 'My name is Khru. \n', 'Nice to meet you! \n', '浣犲ソ. ']
    # 写入成功

读写二进制文件

f_name = "screen.png"
with open(f_name, 'rb') as f:
b = f.read()
copy_name = "screen1.png"
with open(copy_name, 'wb') as c:
c.write(b)

本文作者:Khru

本文链接:https://www.cnblogs.com/khrushchefox/p/16647235.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Khru  阅读(36)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起