Python必备技能:输入输出、文件操作与OS模块

一、输入输出(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")     # 获取环境变量

四、最佳实践

  1. 文件操作必用with语句:自动处理资源释放
  2. 优先使用pathlib:比os.path更面向对象
  3. 明确指定编码 :推荐encoding="utf-8"
  4. 谨慎使用删除操作:先检查文件是否存在
  5. 处理路径使用os.path.join:避免平台兼容问题

扩展学习

  • 使用shutil模块进行高级文件操作(复制/压缩)
  • 学习tempfile模块处理临时文件
  • 探索glob模块进行文件模式匹配

通过掌握这些核心操作,可以高效处理Python中的各种I/O任务!🚀


相关推荐
这里有鱼汤几秒前
Python初学者常犯的错误汇总,建议收藏
后端·python
Johny_Zhao17 小时前
CentOS Stream 8 高可用 Kuboard 部署方案
linux·网络·python·网络安全·docker·信息安全·kubernetes·云计算·shell·yum源·系统运维·kuboard
站大爷IP17 小时前
精通einsum():多维数组操作的瑞士军刀
python
站大爷IP18 小时前
Python与MongoDB的亲密接触:从入门到实战的代码指南
python
Roc-xb19 小时前
/etc/profile.d/conda.sh: No such file or directory : numeric argument required
python·ubuntu·conda
世由心生20 小时前
[从0到1]环境准备--anaconda与pycharm的安装
ide·python·pycharm
猛犸MAMMOTH20 小时前
Python打卡第54天
pytorch·python·深度学习
梓羽玩Python21 小时前
12K+ Star的离线语音神器!50MB模型秒杀云端API,隐私零成本,20+语种支持!
人工智能·python·github
成都犀牛21 小时前
LangGraph 深度学习笔记:构建真实世界的智能代理
人工智能·pytorch·笔记·python·深度学习
終不似少年遊*21 小时前
【数据可视化】Pyecharts-家乡地图
python·信息可视化·数据挖掘·数据分析·数据可视化·pyecharts