餐饮管理东莞网站建设,美团网站界面设计,网站大专,最近国内网站网站做的最好的是哪个Python 项目实践#xff1a;文件批量处理 文章目录 Python 项目实践#xff1a;文件批量处理一 背景二 发现问题三 分析问题四 解决问题1 找到所有文件2 找到文件特定字段3 找出复杂的字符串4 替换目标字符串5 验证文件是否正确 五 总结六 完整代码示例七 源码地址 本项目旨在…Python 项目实践文件批量处理 文章目录 Python 项目实践文件批量处理一 背景二 发现问题三 分析问题四 解决问题1 找到所有文件2 找到文件特定字段3 找出复杂的字符串4 替换目标字符串5 验证文件是否正确 五 总结六 完整代码示例七 源码地址 本项目旨在通过 Python 编程实现对大量文件的批量处理。假设我们有 1000 个文件需要修改特定字段例如将 yourpython.github.io 替换为 yourpython.com 。通过结合 Python 的文件管理、循环控制、正则表达式等知识逐步解决问题。首先通过 os.listdir() 遍历文件利用正则表达式 re.findall() 找到需要替换的字段。然后选择替换方案将修改后的内容保存到新文件中以保持原始文件不变。该项目展示了从发现问题、分析需求到编写解决方案的完整过程是实际应用 Python 知识的一个良好示例。
一 背景
让我们一起开展一个小项目把之前学到的知识实际应用起来。根据自己的学习情况预备课程可以选择跳过。
预备课
Python 文件与目录管理操作、管理与检验详解 Python for 和 while 循环掌握循环控制的基本操作 Python 文件读写操作详解从创建到编码处理.md Python 正则表达式详解从基础匹配到高级应用
本章主要涉及功能
找到所有文件找到文件特定字段替换os.listdir()re.findall()os.path.join()os.path.join()os.path.join()re.sub()string.startswith()
二 发现问题
假如要处理大量文件比如 1000 个文件需要替换其中的特定字符比如把 yourpython.github.io 改成 yourpython.com。
三 分析问题
需求分析要满足以下三点 遍历所有的文本文件 找到文件中特定字段 替换掉这些特定字段
四 解决问题
1 找到所有文件
这里需要 Python 文件与目录管理操作、管理与检验详解 这章的知识点。
print(os.listdir(yourfiles))2 找到文件特定字段
这里需要 Python for 和 while 循环掌握循环控制的基本操作 和 Python 文件读写操作详解从创建到编码处理.md 这两章的知识点。 for filename in os.listdir(yourfiles):file_path os.path.join(yourfiles, filename)with open(file_path, r) as f:print(file_path, : , f.read())3 找出复杂的字符串
这里需要 Python 正则表达式详解从基础匹配到高级应用 这章的知识点。 string 这是我的主页 https://mofanpy.com, 这个 www.mofanpy.com 有很多 mofan 教你机器学习和 python 语言的教学res re.findall(r(https://)?(mofanpy.com), string)for r in res:print(r[1])4 替换目标字符串
这里有二种方案 在原文本上替换并覆盖原文本的内容。 复制出一个新的文件将原文本替换过的文字拷贝到新文件中原文件不改变。
这里选择方案二。 for filename in os.listdir(yourfiles):file_path os.path.join(yourfiles, filename)with open(file_path, r) as f1:string f1.read()new_string re.sub(ryourpython.github.io, yourpython.com, string)with open(os.path.join(yourfiles, new_ filename), w) as f2:f2.write(new_string)5 验证文件是否正确 for filename in os.listdir(yourfiles):if filename.startswith(new_):continuefile_path os.path.join(yourfiles, new_ filename)with open(file_path, r) as f:print(file_path, : , f.read())五 总结
尽管这个任务看起来很简单但其实包含了对项目的一些深度思考比如如何发现问题、分析问题、解决问题。通过之前那个 简单的计算器项目 以及当前这个实践大家对使用 Python 开发项目应该有了更深入的理解。好了到了这个阶段大家已经可以尝试独立完成一些简单的项目了。接下来的课程将致力于进一步提升你的技能而且内容会更加丰富精彩。
六 完整代码示例
# This is a sample Python script.# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
import os
import redef print_hi(name):# Use a breakpoint in the code line below to debug your script.print(fHi, {name}) # Press ⌘F8 to toggle the breakpoint.# 项目实践 文件批量处理# 预备课# 文件目录管理# for 和 while 循环# 读写文件# 正则表达式# 主要涉及功能# 找到所有文件# os.listdir()# os.path.join()# 找到文件特定字段# re.findall()# os.path.join()# 替换# os.path.join()# re.sub()# string.startswith()# 我遇到的问题 我们要处理大量文件 比如 1000 个文件需要替换其中的特定字符# 比如把 yourpython.github.io 改成 mofanpy.com# 分析问题# 遍历所有的文本文件# 找到文件中特定字段# 替换掉这个特定字段# 找到所有文件文件目录管理print(os.listdir(yourfiles))# 找到文件特定字段,for 和 while 循环,读写文件for filename in os.listdir(yourfiles):file_path os.path.join(yourfiles, filename)with open(file_path, r) as f:print(file_path, : , f.read())# 找出复杂的字符串正则表达式string 这是我的主页 https://mofanpy.com, 这个 www.mofanpy.com 有很多 mofan 教你机器学习和 python 语言的教学res re.findall(r(https://)?(mofanpy.com), string)for r in res:print(r[1])# 替换有二种方案# 在原文本上替换并覆盖原文本的内容# 复制出一个新的文件将原文本替换过的文字拷贝到新文件中原文件不改变。# 这里选择方案二for filename in os.listdir(yourfiles):file_path os.path.join(yourfiles, filename)with open(file_path, r) as f1:string f1.read()new_string re.sub(ryourpython.github.io, yourpython.com, string)with open(os.path.join(yourfiles, new_ filename), w) as f2:f2.write(new_string)# 查看文件是否正确print()for filename in os.listdir(yourfiles):if filename.startswith(new_):continuefile_path os.path.join(yourfiles, new_ filename)with open(file_path, r) as f:print(file_path, : , f.read())# Press the green button in the gutter to run the script.
if __name__ __main__:print_hi(文件批量处理)# See PyCharm help at https://www.jetbrains.com/help/pycharm/复制粘贴并覆盖到你的 main.py 中运行运行结果如下。
Hi, 文件批量处理
[c.txt, b.txt, a.txt, d.txt]
yourfiles/c.txt : yourpython.github.io is my favorite site, please have a look.
yourfiles/b.txt : this is a page in yourpython.github.io, please have a look.
yourfiles/a.txt : I have an apple, I have a pen
yourfiles/d.txt : what is my favorite site, please have a look of yourpython.github.io.
mofanpy.com
mofanpy.comyourfiles/new_c.txt : yourpython.com is my favorite site, please have a look.
yourfiles/new_b.txt : this is a page in yourpython.com, please have a look.
yourfiles/new_a.txt : I have an apple, I have a pen
yourfiles/new_d.txt : what is my favorite site, please have a look of yourpython.com.七 源码地址
代码地址
国内看 Gitee 之 文件批量处理.py
国外看 GitHub 之 文件批量处理.py
引用 莫烦 Python