我试图用Python重命名目录中的一些文件。
假设我有一个名为CHEESE_CHEESE_TYPE的文件。***,并希望删除CHEESE_,因此我的结果文件名将是CHEESE_TYPE
我正在尝试使用os.path.split,但它不能正常工作。我也考虑过使用字符串操作,但也没有成功。
我试图用Python重命名目录中的一些文件。
假设我有一个名为CHEESE_CHEESE_TYPE的文件。***,并希望删除CHEESE_,因此我的结果文件名将是CHEESE_TYPE
我正在尝试使用os.path.split,但它不能正常工作。我也考虑过使用字符串操作,但也没有成功。
当前回答
这对我很有用。
import os
for afile in os.listdir('.'):
filename, file_extension = os.path.splitext(afile)
if not file_extension == '.xyz':
os.rename(afile, filename + '.abc')
其他回答
这个命令将使用重命名器从当前目录下的所有文件中删除初始的"CHEESE_"字符串:
$ renamer --find "/^CHEESE_/" *
下面的代码应该可以工作。它接受当前目录中的每个文件名,如果文件名包含模式CHEESE_CHEESE_,那么它将被重命名。如果不是,则不对文件名进行任何操作。
import os
for fileName in os.listdir("."):
os.rename(fileName, fileName.replace("CHEESE_CHEESE_", "CHEESE_"))
这对我很有用。
import os
for afile in os.listdir('.'):
filename, file_extension = os.path.splitext(afile)
if not file_extension == '.xyz':
os.rename(afile, filename + '.abc')
这是一个基于你最新评论的脚本。
#!/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))
这类东西非常适合IPython,它具有shell集成。
In [1] files = !ls
In [2] for f in files:
newname = process_filename(f)
mv $f $newname
注意:要将它存储在脚本中,请使用.ipy扩展名,并在所有shell命令前加上!
参见:http://ipython.org/ipython-doc/stable/interactive/shell.html