Python批量给文件改名的两种方法
Python 文件批量重命名目录Python 文件批量重命名方法一(os.listdir):1.加前缀2.替换重命名/后缀方法二(os.walk):1.加前缀2.替换重命名/后缀方法一(os.listdir):用os.listdir方法,只修改父文件夹下的某种类型文件名,子文件夹里的同种类型文件不受影响。1.加前缀比如,我们只给Test2文件夹下的001.txt文件加上前缀‘test-’不影响子文
Python 文件批量重命名
目录
Python 文件批量重命名
方法一(os.listdir):
1.加前缀
2.替换重命名/后缀
方法二(os.walk):
1.加前缀
2.替换重命名/后缀
方法一(os.listdir):
用os.listdir方法,只修改父文件夹下的某种类型文件名,子文件夹里的同种类型文件不受影响。
1.加前缀
比如,我们只给Test2文件夹下的001.txt文件加上前缀‘test-’
不影响子文件夹里的文件aaa.txt
运行代码,提示改名成功的文件有一个:
来验收结果:
其他子文件夹下的txt类型文件未受影响
python 代码如下:
import os,sys #导入模块
def add_prefix_files(): #定义函数名称
mark = 'test-' #准备添加的前缀内容
old_names = os.listdir( path ) #取路径下的文件名,生成列表
for old_name in old_names: #遍历列表下的文件名
if old_name!= sys.argv[0]: #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
if old_name.endswith('.txt'): #当文件名以.txt后缀结尾时
os.rename(os.path.join(path,old_name),os.path.join(path,mark+old_name)) #重命名文件
print (old_name,"has been renamed successfully! New name is: ",mark+old_name) #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
add_prefix_files() #调用定义的函数,注意名称与定义的函数名一致
记得修改路径,和需要替换的内容。添加后缀不可用此方法,应该用替换方式。
可以举一反三的是:善用 if old_name!=…,可以排除掉不想改名的文件。
2.替换重命名/后缀
如果要给文件加后缀,不能直接用“在os.rename那里,把mark+old_name换成old_name+mark”的方法,因为文件是有拓展名的。可以采用替换的方式来添加后缀。
比如只给Test2文件夹下的001.txt文件加上后缀‘-test’:
不影响子文件夹下的其他txt文件
运行成功后会有提示,一个文件名修改成功:
验收结果:
其他子文件夹下的txt类型文件未受影响
python 代码如下:
import os,sys #导入模块
def rename_files(): #定义函数名称
old_names = os.listdir( path ) #取路径下的文件名,生成列表
for old_name in old_names: #遍历列表下的文件名
if old_name!= sys.argv[0]: #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
if old_name.endswith('.txt'): #当文件名以.txt后缀结尾时
new_name=old_name.replace('.txt','-test.txt') #将原来名字里的‘.txt’替换为‘-test.txt’,相当于加个后缀了
os.rename(os.path.join(path,old_name),os.path.join(path,new_name)) #重命名文件
print (old_name,"has been renamed successfully! New name is: ",new_name) #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
rename_files() #调用定义的函数,注意名称与定义的函数名一致
记得修改路径,文件后缀,需要替换的内容。
需要批量替换文件名也是一样的。
方法二(os.walk):
要在父文件夹下,将所有某种类型的文件(无论其在子文件夹里还是子文件夹外)加上前缀,可以用此方法。
1.加前缀
比如,我们要给Test2文件夹下所有txt文件都加上前缀‘test-’。(无论001.txt还是aaa.txt)
运行代码,提示改名成功的文件有四个:
来验收结果:
python 代码如下:
import os,sys #导入模块
def add_prefix_files(): #定义函数名称
mark = 'test-' #准备添加的前缀内容
for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
for filename in filenames: #遍历列表下的子文件夹名
if filename!= sys.argv[0]: #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
if filename.endswith('.txt'): #当文件名以.txt后缀结尾时
os.rename(os.path.join(foldName,filename),os.path.join(foldName,mark+filename)) #重命名文件
print (filename,"has been renamed successfully! New name is: ",mark+filename) #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
add_prefix_files() #调用定义的函数,注意名称与定义的函数名一致
记得修改路径,和需要替换的内容。添加后缀不可用此方法,应该用替换方式,可以继续往后看。
2.替换重命名/后缀
如果要给文件加后缀,不能直接用“在os.rename那里,把mark+old_name换成old_name+mark”的方法,因为文件是有拓展名的。可以采用替换的方式来添加后缀。
比如要给Test2文件夹下的所有txt文件都加上后缀‘-test’:
运行代码,提示改名成功的文件有四个:
验收结果:
python 代码如下:
import os,sys #导入模块
def rename_files(): #定义函数名称
for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
for filename in filenames: #遍历列表下的子文件夹名
if filename!= sys.argv[0]: #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
if filename.endswith('.txt'): #当文件名以.txt后缀结尾时
new_name=filename.replace('.txt','-test.txt') #将原来名字里的‘.txt’替换为‘-test.txt’,相当于加个后缀了
os.rename(os.path.join(foldName,filename),os.path.join(foldName,new_name)) #重命名文件
print (filename,"has been renamed successfully! New name is: ",new_name) #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
rename_files() #调用定义的函数,注意名称与定义的函数名一致
记得修改路径,和需要替换的内容。
需要批量替换文件名也是一样的。
更多推荐
所有评论(0)