Python 中,open() 函数支持的几种模式

在 Python 中,`open()` 函数支持多种模式用于打开文件,每种模式用于不同的操作。以下是常见的文件打开模式:

读写模式

1. **`'r'`**: 只读模式 (read)
   - 打开文件用于读取。如果文件不存在,会抛出 `FileNotFoundError` 异常。

with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

2. **`'w'`**: 只写模式 (write)
   - 打开文件用于写入。如果文件已存在,文件内容会被清空。如果文件不存在,会创建一个新文件。

with open('example.txt', 'w', encoding='utf-8') as file:
    file.write('这是新内容,旧内容已被覆盖。\n')

3. **`'a'`**: 追加模式 (append)
   - 打开文件用于追加。如果文件已存在,新的数据将写在文件末尾。如果文件不存在,会创建一个新文件。

with open('example.txt', 'a', encoding='utf-8') as file:
    file.write('这是追加的内容。\n')
    xiaowang = balabala
    file.write(xiaowang + '\n')

4. **`'x'`**: 独占创建模式 (exclusive creation)
   - 打开文件用于写入。如果文件已存在,会抛出 `FileExistsError` 异常。如果文件不存在,会创建一个新文件。

二进制和文本模式

5. **`'b'`**: 二进制模式 (binary)
   - 以二进制模式打开文件,用于读取或写入二进制数据(如图像、音频等)。通常与其他模式组合使用,例如 `'rb'`、`'wb'`、`'ab'`。

with open('image.jpg', 'rb') as file:
    image_data = file.read()
    print(image_data[:10])  # 打印前10个字节的数据

 

with open('output.bin', 'wb') as file:
    data = b'\x00\xFF\xFE\xFD'  # 示例二进制数据
    file.write(data)

6. **`'t'`**: 文本模式 (text)
   - 以文本模式打开文件,默认模式。读取或写入文本数据。通常与其他模式组合使用,例如 `'rt'`、`'wt'`、`'at'`。

读写组合模式

7. **`'r+'`**: 读写模式 (read/write)
   - 打开文件用于读写。如果文件不存在,会抛出 `FileNotFoundError` 异常。可以读取和修改文件的内容。

with open('example.txt', 'r+', encoding='utf-8') as file:
    content = file.read()
    print('原始内容:', content)
    file.write('\n这是新追加的内容。')

8. **`'w+'`**: 读写模式 (write/read)
   - 打开文件用于读写。如果文件已存在,文件内容会被清空。如果文件不存在,会创建一个新文件。

9. **`'a+'`**: 读写追加模式 (append/read)
   - 打开文件用于读写追加。如果文件已存在,新的数据将写在文件末尾。如果文件不存在,会创建一个新文件。

with open('example.txt', 'a+', encoding='utf-8') as file:
    file.write('追加的新内容。\n')
    file.seek(0)  # 将文件指针移动到文件开头
    content = file.read()
    print('完整内容:', content)

10. **`'x+'`**: 读写独占创建模式 (exclusive creation/read)
    - 打开文件用于读写。如果文件已存在,会抛出 `FileExistsError` 异常。如果文件不存在,会创建一个新文件。

特殊模式

11. **`'U'` 或 `'rU'`**: 通用换行符支持模式 (Universal Newline)
    - 仅在 Python 2 中使用。在 Python 3 中不再支持该模式。读取文件时,支持所有常见的换行符(`'\n'`, `'\r'`, `'\r\n'`)。

 示例组合

- **`'rb'`**: 以二进制模式读取文件。
- **`'wb'`**: 以二进制模式写入文件。
- **`'r+'`**: 以读写模式打开文件,不清空内容。
- **`'w+'`**: 以读写模式打开文件,清空文件内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值