在Python中批量重命名目录下的文件
我想用Python来重命名一些文件。
比如我有一个文件叫做 CHEESE_CHEESE_TYPE.***
,我想把 CHEESE_
去掉,这样我最终的文件名就变成 CHEESE_TYPE
。
我试着用 os.path.split
,但是效果不太好。我也考虑过用字符串处理的方法,但也没有成功。
15 个回答
25
下面的代码应该可以正常工作。它会检查当前文件夹里的每一个文件名,如果文件名中包含 CHEESE_CHEESE_
这个模式,那么就会对这个文件进行重命名。如果没有包含这个模式,就不会对文件名做任何改变。
import os
for fileName in os.listdir("."):
os.rename(fileName, fileName.replace("CHEESE_CHEESE_", "CHEESE_"))
39
这是一个根据你最新评论写的脚本。
#!/usr/bin/env python
from os import rename, listdir
badprefix = "cheese_"
fnames = listdir('.')
for fname in fnames:
if fname.startswith(badprefix*2):
rename(fname, fname.replace(badprefix, '', 1))
653
使用 os.rename(src, dst)
可以用来重命名或者移动一个文件或文件夹。
$ ls
cheese_cheese_type.bar cheese_cheese_type.foo
$ python
>>> import os
>>> for filename in os.listdir("."):
... if filename.startswith("cheese_"):
... os.rename(filename, filename[7:])
...
>>>
$ ls
cheese_type.bar cheese_type.foo