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任务!🚀


相关推荐
中等生1 小时前
Python的隐形枷锁:GIL如何"绑架"了你的多线程梦想
后端·python
电商数据girl1 小时前
关于私域电商网站,接入电商API数据接口示例
运维·开发语言·网络·python·json·php
Ly2020Wj2 小时前
pytorch入门3:使用pytorch进行多输出手写数据集模型预测
人工智能·pytorch·python
码界筑梦坊2 小时前
90-基于Flask的中国博物馆数据可视化分析系统
python·信息可视化·flask
七七软件开发2 小时前
无人共享 app 系统架构分析
java·python·小程序·系统架构·php
WaterRun2 小时前
一个极简极易用, "即读即用"的Python存储库介绍: SimpSave
python
WaterRun2 小时前
使用Python合并B站缓存视频(至.MP4): 库biliffm4s介绍
python
gonghw4032 小时前
Python中变量之间赋值的理解
python
疯狂的Alex2 小时前
未来20年哪几种编程语言会保持优势?哪几种编程语言会得到更广泛的应用?
java·开发语言·c++·python·c#