本文主要介绍一个常用的 Python 文件批量操作模板,
用于快速处理日常办公文件操作问题
直接看代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
import os import sys
def doProcessFile(filepath): print(filepath)
def processPath(path): if os.path.isfile(path): doProcessFile(path) return
for root, dirs, files in os.walk(path): for file in files: filepath = os.path.join(root, file) doProcessFile(filepath)
def main():
if len(sys.argv) <= 1: print("输入文件或目录\n或将文件或目录拖入并按回车键执行\n") while len(sys.argv) <= 1: path = input() processPath(path) print('\nDONE')
for i in range(1, len(sys.argv)): processPath(sys.argv[i])
if __name__ == '__main__': main() print('\nDONE') input()
|
程序中包含几个输入模式: 1.
通过在命令行中调用该程序并输入文件或文件夹参数 2. 将脚本打包成 exe 后,
通过将要处理的文件或文件夹拖到程序图标即可执行 3. 打开程序进入等待输入,
然后在输入框中输入, 或者直接将文件或文件夹拖进输入框中按回车执行
使用模板
使用该模板也非常简单, 其中只要对 doProcessFile
更改一下即可, 例如: * 批量更改文件编码
1 2 3 4 5 6 7 8 9
| def doProcessFile(filepath): try: with open(filepath, 'r', encoding = 'gbk') as fr: doc = fr.read() with open(filepath, 'w', encoding = 'utf-8') as fw: fw.write(doc) except UnicodeDecodeError: print(filepath + " 不是 GBK 编码")
|
- 批量更改文件名
1 2 3 4 5
| def doProcessFile(filepath): name, type = os.path.splitext(filepath) if type == ".jpg": os.rename(filepath, name + ".png")
|
源文件来自于