找到了个Python版的BOM文件头批量检测及删除的脚本:
#!/usr/bin/env python #-*- coding: utf-8 -*- import os def delBOM(): file_count = 0 bom_files = [] for dirpath, dirnames, filenames in os.walk('.'): if(len(filenames)): for filename in filenames: file_count += 1 file = open(dirpath + "/" + filename, 'r+') file_contents = file.read() if(len(file_contents) > 3): if(ord(file_contents[0]) == 239 and ord(file_contents[1]) == 187 and ord(file_contents[2]) == 191): bom_files.append(dirpath + "/" + filename) file.seek(0) file.write(file_contents[3:]) print bom_files[-1], "BOM found. Deleted." file.close() print file_count, "file(s) found.", len(bom_files), "file(s) have a bom. Deleted." if __name__ == "__main__": delBOM()
Python版本的相比PHP版的要简洁多了{真不愧是:人生苦短,我用Python}
主要体现在:
使用os.walk()实现递归遍历目录中的文件;
列表操作的快速方便。