Python 文件处理指南
在编程 里,文件处理是非常重要的一部分。无论是数据存储、文档管理,还是日志记录,都离不开对文件的操作。而Python作为一个强大的脚本语言,在文件处理方面提供了丰富的功能和灵活性。本文将从基础到应用,全面介绍Python文件处理的方法,并通过实际案例展示使用场景。
1. 打开文件
根据文件类型和操作模式选择合适的函数。
file = open("file.txt", "r") # 读取模式,按默认编码打开
file = open("file.txt", "w") # 写入模式,如果不存在则创建新文件,默认编码
二进制文件:
file = open("image.jpg", "rb") # 二进制读取模式
file2 = open("new_image.jpg", "wb") # 二进制写入模式
2. 读取文件内容(Reading File Content)
逐行读取文本:
with open("file.txt", "r") as file:
content = file.read()
处理特定行或数据:
csv_file = open("data.csv", "r")
reader = csv.reader(csv_file)
for row in reader:
print(row) # 解析并输出每一行数据
3. 写入文件内容
直接写入:
file.write("写入的新内容。\n")
写入二进制数据:
# 假设content是已读取的二进制数据:
file = open("new_image.jpg", "wb")
file.write(content)
4. 关闭文件
使用close()方法释放资源。
file.close()
5. 处理多个文件或目录
使用os.listdir()获取目录下的所有文件,然后根据需求处理每个文件。
列出并压缩所有文档:
import os, shutil
document_root = "/path/to/documents/"
for filename in os.listdir(document_root):
if filename.endswith((".docx", ".xlsx")):
output_path = os.path.join(document_root, filename + ".encrypted")
shutil.make_archive(
base_name=filename,
format="zip",
root_dir=document_root,
filename=filename
)
os.rename(output_path, os.path.join(output_path, filename))
6. 处理错误和异常
使用try...except块来管理可能的文件操作错误。
try:
with open("non_existent_file.txt", "r") as file:
content = file.read()
except FileNotFoundError:
print("文件不存在。")
except Exception as e:
print(f"发生了错误:{e}")
finally:
if 'file' in locals():
file.close()
7. 使用第三方库进行复杂操作
对于涉及数据库或其他复杂处理,推荐使用如Pandas、SQLite等库。
import pandas as pd
# 读取并解析CSV文件:
file_path = "data.csv"
df = pd.read_csv(file_path)
print(df.head()) # 查看前几行数据
8. 自定义函数进行批量操作
根据需要创建函数,处理大量或特定格式的文件。
import os
def process_image(image_path, output_path):
file = open(image_path, "rb")
content = file.read()
with open(output_path, "wb") as new_file:
new_file.write(content)
file.close()
# 处理指定目录下的所有图片:
base_dir = "/path/to/images/"
for file in os.listdir(base_dir):
if file.endswith(".jpg"):
input_path = os.path.join(base_dir, file)
output_path = os.path.join("processed_images", file)
process_image(input_path, output_path)
print(f"已处理{os.listdir('processed_images')}个图片。")
9. 安装与更新工具
通过pip安装必要的库,以支持更复杂的文件操作。
pip install requests # 示例安装常用库
以上是一些基础到文件操作,您可以根据具体需求来调整和扩展。