https://www.python.org/
利用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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| import os
def listFiles(dirPath): '''遍历指定文件夹下打印所有的文件 :param dirPath: 指定遍历的文件夹路径 :return: 一个列表,包含指定文件夹下所有的文件绝对路径 ''' fileList = [] ''' os.walk(dirPath) :走查指定的文件夹路径 root :代表目录的路径 dirs :一个list,包含了dirpath下所有子目录文件夹的名字 files :一个list,包含了所有非目录文件的名字 ''' for root, dirs, files in os.walk(dirPath): for fileObj in files: fileList.append(os.path.join(root, fileObj)) return fileList
def replace_str(fileDir,old_str,new_str): ''' :param fileDir: 需要替换字符串的文件夹的绝对路径 :param old_str: 替换前的字符串 :param new_str: 替换后的字符串 :return: 替换了字符串后重新写入内容的文件 ''' fileList = listFiles(fileDir) for file_name in fileList: res = os.path.splitext(file_name) file_extension = res[1] if file_extension == ".json": print("成功一个") f = open(file_name, 'r+',encoding='utf-8') all_the_lines = f.readlines() f.seek(0) f.truncate() for line in all_the_lines: f.write(line.replace(old_str,new_str)) f.close()
if __name__ == '__main__':
fileDir = r'D:\XXX'
replace_str(fileDir, 'oldString', 'newString') print("全部完成")
|