前言
测试总遇到各种造数据的情况,在测试文件数量不足的情况,我需要批量修改文件名,才能符合测试需求,客户只提供部分文件,这样就要批量修改文件名。
如何做
os.listdir() 可以读取文件夹中的文件,存放在列表中,os.rename()可以把文件重命名,那么我就可以写脚本了,这次简单粗暴吧。
import os
class Rename():
'''
重命名文件名,将文件名写入指定的txt文件中
'''
def __init__(self,path):
#初始化需要改写文件名的目录
self.path = path
def rename_fun(self):
'''
重命名文件方法
'''
fileList = os.listdir(self.path)
print(fileList)
n = 0
for fileanme in fileList:
#当前文件的名称(路径+文件名)
current_name = self.path + os.sep + fileanme #os.sep添加分隔符\
#设置新的文件名
new_name = self.path + os.sep + 'dp-45655544' + str(n + 1)+ "-2"+".txt"
os.rename(current_name, new_name) # 用os模块中的rename方法对文件改名
# print(current_name, '======>', new_name)
n += 1
def get_image_paths(self):
'''
遍历.txt结尾文件的文件
'''
return (os.path.join(self.path, f)
for f in os.listdir(self.path)
if '.txt' in f)
def main_write_path(self):
"""
主流程的方法的调用
"""
self.rename_fun()
image = self.get_image_paths()
print(image)
for i in image:
try:
res = next(image,"——————————————————获取的文件名称————————————————————-")
print(res)
except StopIteration:
# 遇到StopIteration就退出循环
break
#写入test001文件
with open(r"C:\Users\pengfei\Desktop\test001.txt", mode='a+') as f:
f.write(res + "\n")
Rename(r"C:\Users\pengfei\xxxxx\12345").main_write_path()
查看下文件修改效果:
文件的各种操作,我以后再多总结,这里仅仅写一写我遇到问题,如有更好的方法,方案,请多多赐教。