Python/cPython 输入输出操作完全指南

Python/cPython 输入输出操作完全指南

cpython cpython: 是Python编程语言的官方源代码仓库,包含Python解释器和标准库的实现。 cpython 项目地址: https://gitcode.com/gh_mirrors/cp/cpython

概述

在Python编程中,输入输出(I/O)操作是与用户交互和持久化数据存储的基础。Python/cPython提供了多种灵活的方式来处理输入输出,从简单的打印到复杂的文件操作。本文将全面介绍Python中的各种I/O技术,帮助开发者掌握数据展示和存储的最佳实践。

格式化输出

Python提供了多种格式化输出的方法,每种方法都有其适用场景。

1. f-字符串(格式化字符串字面值)

f-字符串是Python 3.6引入的特性,通过在字符串前加fF前缀,可以直接在字符串中嵌入表达式:

name = "Alice"
age = 25
print(f"My name is {name} and I'm {age} years old.")

f-字符串支持格式说明符:

import math
print(f"Pi value is approximately {math.pi:.3f}")  # 保留3位小数

2. str.format()方法

这是Python传统的字符串格式化方法,提供了更详细的格式控制:

print("{} comes before {}".format("apple", "banana"))
print("{1} comes after {0}".format("apple", "banana"))
print("{fruit} is {color}".format(fruit="apple", color="red"))

3. 手动字符串格式化

对于简单的对齐需求,可以使用字符串方法:

  • str.rjust(width) - 右对齐
  • str.ljust(width) - 左对齐
  • str.center(width) - 居中
  • str.zfill(width) - 用零填充数字
for x in range(1, 4):
    print(str(x).rjust(2), str(x*x).rjust(3))

4. 旧式字符串格式化(%操作符)

虽然不推荐在新代码中使用,但在旧代码中仍常见:

print("The value is %5.2f" % 3.14159)

文件操作

Python通过内置的open()函数处理文件I/O,支持文本和二进制模式。

文件打开模式

| 模式 | 描述 | |------|------| | 'r' | 只读(默认) | | 'w' | 写入(会覆盖) | | 'a' | 追加 | | 'b' | 二进制模式 | | '+' | 读写模式 |

最佳实践:使用with语句

使用with语句可以确保文件正确关闭,即使发生异常:

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

常用文件方法

  1. 读取操作

    • f.read(size) - 读取指定大小的内容
    • f.readline() - 读取一行
    • f.readlines() - 读取所有行到列表
    • 直接迭代文件对象(内存高效)
  2. 写入操作

    • f.write(string) - 写入字符串
    • f.writelines(sequence) - 写入多行
  3. 文件定位

    • f.tell() - 返回当前位置
    • f.seek(offset, whence) - 移动文件指针

文本模式与二进制模式

  • 文本模式:处理字符串,自动转换换行符
  • 二进制模式:处理字节,不进行任何转换
# 文本模式
with open('text.txt', 'w') as f:
    f.write("Hello\nWorld")

# 二进制模式
with open('binary.bin', 'wb') as f:
    f.write(b'\x48\x65\x6c\x6c\x6f')

JSON数据处理

Python的json模块可以方便地在Python对象和JSON格式之间转换:

import json

# Python对象转JSON字符串
data = {'name': 'Alice', 'age': 25}
json_str = json.dumps(data)

# JSON字符串转Python对象
data = json.loads(json_str)

# 直接读写JSON文件
with open('data.json', 'w') as f:
    json.dump(data, f)

with open('data.json', 'r') as f:
    data = json.load(f)

总结

Python提供了丰富的I/O操作工具,从简单的字符串格式化到复杂的文件处理。掌握这些技术可以帮助开发者:

  1. 创建用户友好的输出格式
  2. 高效地读写各种文件
  3. 处理结构化数据(如JSON)
  4. 编写健壮的I/O代码(使用with语句)

在实际开发中,应根据具体需求选择合适的I/O方法,并始终注意资源管理和异常处理。

cpython cpython: 是Python编程语言的官方源代码仓库,包含Python解释器和标准库的实现。 cpython 项目地址: https://gitcode.com/gh_mirrors/cp/cpython

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

井队湛Heath

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值