一、引言
我们在进行语料操作的时候,多数情况下是批量操作文件,就是要读取目录及子目录下的多个文件进行操作,有时候需要在操作之后依然保存成多个文件,为了跟原来的文件相区别,我们一般把保存的文件保存在另外一个目录下,这就是目录对目录操作。
目录对目录操作,需要os和os.path中的很多对象,一般的初学者难以掌握,为此,本号分享一个目录对目录操作的模板,只要coder会写单个文件对单个文件的操作代码,就能实现批量文件操作。
即便不研究语言学,我们对很多文件进行批量加工变换的时候,也往往会有目录对目录操作的需求。
本号今日分享一个目录对目录批量文件操作的Python代码模板,并基于该模板介绍几个简单应用。环境:64位Win 10中文版 + 64位Python 3.7.6
《Python程序设计(基于计算思维和新文科建设)》,ISBN:9787121435577,胡凤国,电子工业出版社,2022年6月。本书是电子工业出版社在国内较早采用纸质版+电子版的创新图书发行模式的第一次尝试。本书是这套创新图书的纸质版部分,与之内容互补的电子版图书将稍后出版。基础篇介绍Python程序设计的入门知识,共12章,包括:⑵ Python软件的安装和Python程序运行;⑶ Python的基本概念(对象、数据类型、表达式、内置函数);排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:与本书内容互补的电子版图书包含文本篇和应用篇两部分:文本篇:介绍字符集、编码和文本文件读写的知识,包含了对国家规范《通用规范汉字表》8105个汉字当中难以输入和难以显示的汉字的处理。应用篇:介绍Word、Excel、PPT、PDF、图片等常用办公文件的处理,是大家提高办公和科研效率的好帮手。本书配套有详细的PPT和教学大纲,还有全部例题的程序代码和绝大部分思考题的程序代码。本书配套PPT里面还加入了配套电子版图书中的部分内容,比如字符集和编码,不同编码的文本文件的读写,Word、Excel、PPT、PDF等一些常用办公文件的读写。1、大学文科生, 可选本书当Python教材或自学Python的参考书。2、大学理工科学生, 可选本书当自学Python的参考书。可拿本书当工具书,本书的配套程序会为您节省效率,在当前大数据和新文科的背景下,本书可以为相关领域的量化研究提供技术支持。本书配套的电子版图书中的编码和文本处理知识也可以作为理工科教师和科研人员处理文本数据的参考资料之一,毕竟专门开辟章节介绍国家标准《通用规范汉字表》汉字处理的程序设计图书并不多见。
本书有专门的海龟画图章节,有大量的有趣数学题目,可以培养学生的计算思维,适合对编程感兴趣的中小学生阅读,也适合打算让娃参加编程辅导班的家长朋友参考。本书在各大实体书店和网店均有销售。京东、天猫、当当的购买渠道如下(可扫码直达购买页面)。

上面的代码,导入了一个自定义的函数 find_files_walk,该函数的功能是查找目录及子目录下的所有指定类型的文件,因为是用 os.walk 来实现的,所以函数名中带了walk的字样。
此前,本号分享过一篇用 os.listdir 来查找目录及子目录下的所有指定类型文件的文章,见:
《查找目录和子目录下所有指定类型的文件——os.listdir篇》
这篇文章就提到可以用 os.walk 来获取目录及子目录下的文件,关于os.walk 的细节,以后本号再详细介绍,这里只需要知道自定义函数find_files_walk的功能是干啥的就行。
使用这个模板,我们需要把所有带***的代码根据实际情况替换掉,然后只把注意力放在两条横线之间的代码就行。
两套横线之间需要填写的是读取单个文件的内容,变换之后写入另一个文件的代码。

五、应用2:批量删除文本文件中的空白行和行首尾空白符

看,有了模板,批量操作文件是不是很简单?现在的问题是,自定义函数 find_files_walk 是怎么写的呢?稍后本号将会具体介绍该函数。
由于本号文章以辅助教学为主,笔者不建议自己的学生直接拿代码运行,而是建议在理解了思路之后自己敲代码来加深印象,所以本号一般不直接贴代码。如果其他读者朋友有需要代码,请私信联系。欢迎关注微信公众号“语和言”,本公众号将不定期发布对图书《Python程序设计(基于计算思维和新文科建设)》中的Python知识点进行解读和补充的内容。语和言公众号还有读者交流群,读者朋友可以入群一起讨论问题。
欢迎跟图书《Python程序设计(基于计算思维和新文科建设)》的作者胡凤国老师进行交流,作者电邮:cuchufengguo@163.com。
七、图书目录
图书《Python程序设计(基于计算思维和新文科建设)》目录如下:8.2.4 关于元素可比较的有序序列类对象的通用操作10.3.3 用上下文管理语句with来管理文本文件读写12.12.1 datetime标准库定义的常用类