Python基础实战:控制台读写、文件操作与字符串格式化全解析

半杯拿铁
半杯拿铁
发布时间:2026-10-12| 4人浏览过
原创

本文详解Python 3中的核心数据交互方法。涵盖使用input()读取键盘输入与print()控制屏幕输出的参数技巧;讲解通过open()以文本或二进制模式读写文件的完整流程,以及seek定位、行循环读取等操作;最后对比str.format()、%占位符与内置对齐方法的格式化输出应用,附带跨平台换行符差异说明,帮助开发者快速掌握基础I/O与排版技巧。

控制台输入与输出配置

第1步:接收标准键盘输入

在Python程序中获取用户数据主要依赖内置函数 input()。该函数会暂停程序运行并等待一行标准输入,读取后自动移除末尾换行符,始终返回字符串类型。在Python 3.x版本中已彻底取消旧版的 raw_input() 函数。

s = input("请输入内容:")

第2步:自定义屏幕打印格式

输出结果至屏幕默认使用 print() 函数。除默认空格分隔外,可通过关键字参数精确控制分隔符、结束符及重定向目标:

# 自定义分隔符为百分号
print('hello', 'world', sep='%')  # 输出 hello%world 
# 自定义结束符为星号且不换行
print('hello', 'world', end='*')

sep 指定元素间分割符,end 指定末尾追加字符,file 支持将输出重定向至特定文件流。赋值时必须使用关键字参数形式。

文件读写与对象管理

第3步:按模式打开目标文件

所有文件操作均需先调用 open(filename, mode) 获取文件对象。若不指定参数,默认以只读文本模式 r 打开(底层默认UTF-8编码)。常用模式标识如下:

  • r:只读。指针位于文件开头。
  • w:只写。若文件存在则清空覆盖,不存在则新建。
  • a:追加写入。指针位于末尾,不存在则新建。
  • b:二进制模式。需与其他字母组合(如 rb, wb+),适用于图片或程序包等非文本数据。
  • +:同时允许读写。必须依附于 r/w/a 使用。

注意:w 和 a 具备创建新文件的权限,而 r 模式下打开不存在的文件会抛出异常。

第4步:执行读写操作与定位跳转

根据打开模式的不同,文件对象分为TextIOWrapper与各类BufferedReader/Writer。核心操作方法如下:

# 文本模式下逐行遍历读取,内存友好
for line in f: 
    print(line, end='')

# 字节对象解码转换示例
b_data = bytes('Hello Python', 'UTF-8')
text_str = b_data.decode()  # bytes转str需显式指定编码

f.write(string) 仅在文本模式接受字符串,二进制模式必须传入 bytes 对象。f.seek(offset, from_what) 用于跳转指针位置,其中 from_what 取0(文件头)、1(当前位置)或2(文件尾)。

第5步:安全关闭文件句柄

操作完成后务必调用 f.close() 释放系统资源。推荐在实际项目中结合上下文管理器 with open(...) as f: 使用,可自动完成清理工作并避免资源泄漏风险。

字符串格式化与排版技巧

第6步:使用字段替换生成动态文本

相比传统的拼接或截断方式,str.format() 提供了更灵活的模板引擎功能。花括号内的索引或关键字将映射到传入的参数:

# 位置索引控制
print('{0} and {1}'.format('Kobe', 'James')) 
# 关键字映射
print('The {thing} is {adj}.'.format(thing='flower', adj='beautiful'))

第7步:对齐表格与数值精度控制

借助冒号后的格式描述符可快速实现列宽对齐与小数截断。配合字典解包能高效处理结构化数据:

import math
# 保留三位小数的PI值显示
print('PI value: {:.3f}'.format(math.pi))

# 字典解包与表格对齐
contacts = {'Jack':4127, 'Rose':4098, 'Peter':7678}
print('{0:10} ==> {1:10d}'.format(**contacts))

虽然 % 操作符(如 '%.3f' % val)仍被广泛使用,但官方建议逐步迁移至 str.format()。此外,纯文本场景也可利用 .rjust() 或 .center() 进行单字符串靠左/居中填充。

跨平台差异与排错建议

第8步:排查换行符导致的读取异常

不同操作系统的底层行末标识存在差异:Windows默认采用 \r\n,Linux/macOS仅使用 \n。在Windows环境中进行文本模式读写时,Python会自动进行隐式转换;但若处理JPEG、EXE等二进制文件或需保持原始字节流绝对一致,务必改用 rb/wb 模式以避免数据损坏。若发现读取出的多行文本出现奇怪的空格或错位,通常是混用了不同平台的换行符导致,统一通过 .replace('\r\n', '\n') 清洗或强制指定编码即可解决。

总结

掌握Python输入输出的本质在于理解数据流向与编码规范。从控制台的基础采集到文件的精准定位读写,再到基于 str.format() 的结构化排版,这套I/O流水线构成了绝大多数脚本的基石。合理选择文本模式还是二进制模式,并养成及时关闭句柄的习惯,能有效规避运行时错误。以上就是Python基础输入输出与文件操作的详细内容,更多关于Python控制台读写与格式化的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。