一、输入输出(I/O)
1. 标准输入输出
python
# 输入
name = input("请输入姓名:") # 返回字符串类型
# 输出
print("Hello", name, end="!") # 默认换行,end参数修改结尾符
print(f"{name}今年{age}岁") # f-string格式化(推荐)
2. 格式化输出
方式 | 示例 | 特点 |
---|---|---|
% 格式化 | "%.2f" % 3.1415 |
传统C风格 |
str.format() | "{} {}".format(a, b) |
灵活定位 |
f-string | f"{price:.2f}" |
Python3.6+,最简洁 |
二、文件操作
1. 基础文件读写
python
# 写入文件
with open("data.txt", "w", encoding="utf-8") as f:
f.write("第一行内容\n")
f.writelines(["第二行\n", "第三行\n"])
# 读取文件
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read() # 全部内容
lines = f.readlines() # 按行读取为列表
for line in f: # 逐行迭代(内存友好)
2. 文件模式速查
模式 | 描述 | 文件存在 | 文件不存在 |
---|---|---|---|
r | 只读(默认) | 打开 | 报错 |
w | 写入(覆盖) | 清空 | 创建 |
a | 追加写入 | 追加 | 创建 |
x | 排他创建 | 报错 | 创建 |
b | 二进制模式(搭配rwax使用) | - | - |
+ | 读写模式(搭配rwax使用) | - | - |
3. 实用技巧
python
# 异常处理
try:
with open("file.txt") as f:
pass
except FileNotFoundError:
print("文件不存在")
# JSON文件处理
import json
data = {"name": "Alice"}
with open("data.json", "w") as f:
json.dump(data, f) # 序列化
with open("data.json") as f:
loaded = json.load(f) # 反序列化
三、OS模块操作
1. 目录操作
python
import os
# 目录管理
os.mkdir("new_dir") # 创建单级目录
os.makedirs("a/b/c") # 创建多级目录
os.rmdir("empty_dir") # 删除空目录
os.removedirs("a/b/c") # 递归删除空目录
# 路径检测
print(os.path.exists("file.txt")) # 是否存在
print(os.path.isdir("docs")) # 是否是目录
2. 路径操作
python
from pathlib import Path # 推荐替代os.path
# 路径拼接
full_path = os.path.join("dir", "sub", "file.txt")
# Pathlib操作
p = Path("data") / "test.csv"
print(p.parent) # 获取父目录
print(p.suffix) # 获取后缀名
p.touch() # 创建空文件
3. 文件系统操作
python
# 文件管理
os.rename("old.txt", "new.txt") # 重命名/移动
os.remove("file.txt") # 删除文件
# 遍历目录
for root, dirs, files in os.walk("project"):
print(f"当前目录:{root}")
print(f"包含文件:{files}")
# 获取信息
print(os.getcwd()) # 当前工作目录
print(os.listdir(".")) # 列出目录内容
4. 环境变量
python
os.environ["API_KEY"] = "12345" # 设置环境变量
value = os.getenv("API_KEY") # 获取环境变量
四、最佳实践
- 文件操作必用
with
语句:自动处理资源释放 - 优先使用
pathlib
:比os.path更面向对象 - 明确指定编码 :推荐
encoding="utf-8"
- 谨慎使用删除操作:先检查文件是否存在
- 处理路径使用os.path.join:避免平台兼容问题
扩展学习:
- 使用
shutil
模块进行高级文件操作(复制/压缩) - 学习
tempfile
模块处理临时文件 - 探索
glob
模块进行文件模式匹配
通过掌握这些核心操作,可以高效处理Python中的各种I/O任务!🚀