从文件名末尾删除前面的四个字符和13个字符



我已经看到了目录中的文件名更换的基本python代码,但是它们始终是已知的字符串,但是您如何删除特定长度的随机字符?

这个可以工作吗?

newFileName = file.replace([-5:], "")

当我试图从文件名中删除最后五个字符时,而无需删除扩展名。

这是一个更新:我正在尝试这样做:

DMC-CIWS15-AAAA-A00-00-0000-00A-018A-D_014-00_EN-US.xml

to

CIWS15-AAAA-A00-00-0000-00A-018A-D.xml

从末端删除DMC-和_014-00_en-us。

我需要将其添加到可以修复文件目录的代码中。

这个问题(如果我正确理解)具有明确的分离。删除扩展名,从开始和结尾删除X字符,然后再次添加扩展名以获取最终答案。

import os
oldFileName = 'xxxx-filename-xxxxx.XML'
# remove n chars in beginning, m chars at end
n = 5
m = 6
name, ext = os.path.splitext(oldFileName)
# splice away the chars, and add the extension
newFileName = '{}{}'.format(name[0:-m][n:], ext)
# newFileName == 'filename.XML'

因此,在您的情况下,您将使用n=4m=13

如果您不知道该长度,但是您知道您想要所有内容,包括第一个破折号,并且在第一个下划线之后的所有内容(这意味着在普通文件或它的第一部分),这也可以工作:

import os
oldFileName = 'DMC-CIWS15-AAAA-A00-00-0000-00A-018A-D_014-00_EN-US.xml'
name, ext = os.path.splitext(oldFileName)
newFileName = '{}{}'.format(name[name.index('-')+1:name.index('_')], ext)
# newFileName == 'CIWS15-AAAA-A00-00-0000-00A-018A-D.xml'

,即使模式是其他的,但是有一个模式,您也可以像我在这里一样匹配它。

它不好,但我希望这对您有用

如果您知道要重命名的文件都具有相同的长度,则可以尝试:

>>>file = 'DMC-CIWS15-AAAA-A00-00-0000-00A-018A-D_014-00_EN-US.xml'
>>>ext = file[51:]
>>>newFile = file[4:38]+ext

当您打印newfile时,您现在拥有:

>>>print(newFile)
CIWS15-AAAA-A00-00-0000-00A-018A-D.xml

相关内容

最新更新