法一:利用批处理命令(较麻烦,但是通用)
一、将需要修改的批量文件放到同一个文件夹中。在该文件夹下,新建一个txt文件,并在其中输入DIR *.* /B >LIST.csv
二、把txt文件改成bat,双击运行后生成csv文件
三、第一列是原文件名,在第二列输入新的文件名
【我这里共有100个文件,我用0.csv到99.csv举个例子】
四、在第一行第三列输入="REN "&""""&A1&""""&" "&""""&B1&""""
也就是要达到【REN"原文件名""新文件名"】的效果(记得后缀)
五、把第三列复制到一个新的txt文件中,(注意编码方式选择ANSI)
六、再把新的txt文件后缀改成bat,然后双击运行即可完成
关于为什么要将后面的txt文件保存为ANSI格式:
Windows的cmd.exe默认编码格式为ANSI,而我们国内使用txt默认编码为UTF-8。
当bat文件编码与当前cmd环境不一致时, 双击执行时就会乱码!
其实ANSI并不是某一种特定的字符编码,而是在不同的系统中,ANSI表示不同的编码。
你的美国同事Bob的系统中ANSI编码其实是ASCII编码(ASCII编码不能表示汉字,所以汉字为乱码),
而你的系统中(“汉字”正常显示)ANSI编码其实是GBK编码,
而韩文系统中(“한국어”正常显示)ANSI编码其实是EUC-KR编码。
如果你的bat文件是UTF-8编码的, 或者是是其他Codepage下创建的, 比如
Windows日语版下创建的bat文件, 保存为ANSI编码时对应cp932, 即Shift-JIS编码
Windows繁体中文版下创建的bat文件, 保存为ANSI编码时对应cp950, 即Big5编码
法二:用python(简便快捷,但是文件名特殊的话可能会报错)
import os
#此代码是将一个文件夹中的txt文件按顺序读取后重命名为1、2、3、4……
#注意:需要新的这些1、2、3、4……名字与旧名字没有重叠,重叠的话会报错
filepath = os.listdir("D:\\") # 此处用来填写存储有多个txt文件的文件夹地址,注意末尾也要有\\
filepath.sort(key=lambda x: int(x.split('.')[0]))
#上面这句话的作用:假如原本txt文件的名字就是用数字的,这句话是为了使读取顺序按1、2、3,没有这句话的话读取顺序会是1、10、100……读完1开头再读2,以此类推
filename = "D:\\" # 此处需与上述文件夹地址一致
name_list = [] # 存储旧名字
rename_list = [] # 存储新名字
num = len(filepath)
for i in range(num):#遍历后将新名字对应为其顺序
name_list.append(filepath[i])
rename_list.append(str(i)+'.csv')
#这里是为了保证是字符类型的变量
old_name = '1'
new_name = '1'
#遍历重命名
for i in range(num):
old_name = name_list[i]
new_name = rename_list[i]
os.rename(filename+old_name, filename+new_name)