周末学习笔记:Python文件操作(结构化数据转换与文件处理)
目录
一、任务目标
二、实现步骤与代码解析
2.1 数据准备阶段
关键点解析:
2.2 数据转换核心代码
三、关键技术解析
3.1 字符串处理方法
3.2 数据结构转换
3.3 文件写入技巧
四、执行结果验证
输入文件t1.txt内容:
输出文件t2.txt内容:
五、自我提升建议
六、学习总结
避坑指南:
学习资源推荐:
一、任务目标
将原始数据文件t1.txt
中的逗号分隔数据转换为字典列表格式,并输出到新文件t2.txt
。通过本案例可以学习:
-
文件读写操作
-
字符串处理方法
-
数据结构转换
-
异常处理基础
二、实现步骤与代码解析
2.1 数据准备阶段
# 创建并写入原始数据文件
with open(r"D:\t1.txt", "w", encoding="utf-8") as file:
file.write("""1,吴彦祖,22,13812346543,警察
2,金城武,23,13698763214,学生
3,彭于晏,18,13565478921,运动员""")
关键点解析:
-
使用
with
语句自动管理文件资源 -
encoding="utf-8"
确保中文正常存储 -
三引号字符串保持数据格式清晰
2.2 数据转换核心代码
def convert_file(input_path, output_path):
result = []
try:
with open(input_path, "r", encoding="utf-8") as f:
for line in f:
# 数据清洗与分割
clean_line = line.strip()
if not clean_line: # 跳过空行
continue
# 数据结构转换
parts = clean_line.split(',')
if len(parts) != 5: # 数据有效性检查
print(f"格式错误行: {line}")
continue
data_dict = {
'id': parts[0],
'name': parts[1],
'age': parts[2],
'phone': parts[3],
'job': parts[4]
}
result.append(data_dict)
# 结果写入文件
with open(output_path, "w", encoding="utf-8") as out_f:
out_f.write(str(result))
except FileNotFoundError:
print("输入文件不存在")
except Exception as e:
print(f"发生未知错误: {str(e)}")
# 执行转换
convert_file(r"D:\t1.txt", r"D:\t2.txt")
三、关键技术解析
3.1 字符串处理方法
line.strip().split(',')
-
strip()
: 去除首尾空白符和换行符 -
split(','))
: 按逗号分割字符串 -
组合使用实现数据清洗与分割
3.2 数据结构转换
data_dict = {
'id': parts[0],
'name': parts[1],
# ...其他字段...
}
-
通过列表索引映射字段
-
字典键名明确数据含义
-
列表存储保持顺序性
3.3 文件写入技巧
str(result) # 直接转换数据结构
-
利用Python的自动类型转换
-
保持数据结构可视化
-
适合简单数据持久化
四、执行结果验证
输入文件t1.txt
内容:
1,吴彦祖,22,13812346543,警察
2,金城武,23,13698763214,学生
3,彭于晏,18,13565478921,运动员
输出文件t2.txt
内容:
[
{'id': '1', 'name': '吴彦祖', 'age': '22', 'phone': '13812346543', 'job': '警察'},
{'id': '2', 'name': '金城武', 'age': '23', 'phone': '13698763214', 'job': '学生'},
{'id': '3', 'name': '彭于晏', 'age': '18', 'phone': '13565478921', 'job': '运动员'}
]
五、自我提升建议
-
数据增强:添加字段验证(如手机号格式检查)
-
格式优化:使用JSON格式存储代替字符串转换
-
性能提升:处理大文件时使用分批读取
-
异常完善:增加更具体的异常类型处理
六、学习总结
通过本案例掌握了:
-
文件操作的安全写法(with语句)
-
字符串处理的核心方法
-
字典列表的数据结构应用
-
基础异常处理的使用场景
避坑指南:
-
文件路径使用原始字符串(r"")
-
注意不同操作系统的换行符差异
-
中文文件必须指定编码格式
-
重要操作添加数据校验
学习资源推荐:
📚 Python官方文件操作文档
🔍 JSON模块使用指南