假设我在一个目录中有以下文件:
snackbox_1a.dat
zebrabar_3z.dat
cornrows_00.dat
meatpack_z2.dat
我有几个这样的目录,其中所有的文件都是相同的格式,即:
^{pr2}$所以我对这些文件的了解是第一位的(snackbox,zebrabar,cornrows,meatpack)。不知道文件的扩展名是什么。这会在目录中跨文件和跨目录进行更改(因此另一个目录可能有不同的xx值,如12、yy、2m、0t等等)。在
有没有办法让我重命名所有这些文件,或者将它们全部截断(因为年月日将总是相同的长度),以便在尝试调用它们时使用方便?例如,我想重命名它们,这样我就可以在另一个脚本中使用一个简单的索引单步执行并找到我想要的文件(而不是必须进入每个目录并手动拉出文件)。在
换句话说,我希望将文件名更改为:
snackbox.dat
zebrabar.dat
cornrows.dat
meatpack.dat
谢谢!在
此解决方案重命名当前目录中与函数调用中的模式匹配的所有文件。在
函数的作用
让我们看看函数输入和一些示例。在
这是一个字符串列表。其中每个字符串是不带
_??
部分的文件名。在示例:
['snackbox.txt', 'zebrabar.txt', 'cornrows.txt', 'meatpack.txt', 'calc.txt']
['text.dat']
upper_bound=1000
这是一个整数。当理想的文件名已经存在时,例如snackbox.dat
已经存在,如果需要,它将创建snackbox_0.dat
,直到snackbox_9999.dat
。你不应该改变默认值。在代码
^{pr2}$您可以使用shutil.move移动文件。要计算新文件名,可以使用Python的string
split
方法:尝试re.sub:
您应该为}
filename_new
获得{这假设“”后面的两个字符要么是数字,要么是小写/大写字母,但您可以选择扩展正则表达式中包含的类。在
编辑:包括移动和recursive search:
^{pr2}$相关问题 更多 >
编程相关推荐