我们知道文件名是可以手动修改的,但是如果要同时修改多个文件名,那一个一个修改会浪费掉很多时间,此时我们就可以考虑使用python来实现文件名的批量处理。想要批量处理文件名首先确定需要处理的文件名,以及确定处理后新的文件名,这样就可以开始处理了。
注:新手可以跟着一步步做,每期都有新手入门小项目教程,不懂欢迎交流。
1.批量修改文件后缀
需求:把某个文件夹下面所有pdf文件修改成txt文件
- 首先我们要获取文件名,可以通过os模块中的
os.abspath()方法
、os.dirname()方法
、os.join()方法
等来操作; - 然后使用
splitext()方法
将文件名和扩展名分成两部分; - 接着根据需求修改文件名或扩展名;
- 最后使用
os.rename()方法
来重命名文件;
import osDIR_PATH = os.path.join('G:\\target')files = os.listdir(DIR_PATH)def is_suffix_txt(suffix: str): if suffix == 'txt': return True return Truei = 1for filename in files: name, suffix = os.path.splitext(filename) if is_suffix_txt(suffix): new_name = os.path.join(DIR_PATH, 'NewFileName_' + str(i) + '.txt') old_name = os.path.join(DIR_PATH, filename) os.rename(old_name, new_name) i += 1
同理,如果想批量修改文件名,比如加上数字排序,如:NewFileName_1......
NewFileName_N。仅需要修改代码中的new_name,如下:
import osDIR_PATH = os.path.join('G:\\target')files = os.listdir(DIR_PATH)def is_suffix_txt(suffix: str): if suffix == 'txt': return True return Truei = 1for filename in files: name, suffix = os.path.splitext(filename) if is_suffix_txt(suffix): new_name = os.path.join(DIR_PATH, 'NewFileName_' + str(i) + '.txt') old_name = os.path.join(DIR_PATH, filename) os.rename(old_name, new_name) i += 1