如何使用最后一个字符串重命名XLSX文件



我有目录,其中有XLSX文件和Word Doc文件。我只想重命名带有最后一个字符串的XLSX文件,而今天日期(DD/mm(

我的文件路径

DF_25.xlsx
DF_28.xlsx
DF_30.doc
....

我的代码如下:

import os
path = 'H:LearningMohan'
files = os.listdir(path)
for file in files:
   os.rename(os.path.join(path, file), os.path.join(path, 'DF_' + file + '.xlsx'))

执行所有重命名后,包括DOC和XLSX文件。如果我重新执行它,请继续附加它,不应在下一个执行中附加

这样:

DF_DF_25.xlsx.xlsx
DF_DF_28.xlsx.xlsx
DF_DF_30.doc.xlsx

我需要输出,例如:

25_DF_3/5.xlsx
28_DF_3/5.xlsx
DF_30.doc

使用 str.endswith检查文件扩展名并重命名文件。

ex:

import os
path = 'H:LearningMohan'
files = os.listdir(path)
for file in files:
    if file.endswith(".xlsx"):
        os.rename(os.path.join(path, file), os.path.join(path, 'DF_' + file))

这是我的解决方案。请注意,我将" dd/mm"表达式中的斜线更改为点,因为slash不能在文件名中使用。

import os
#IMPORT RE MODULE TO REMOVE ALL NON-NUMERIC SYMBOLS FROM FILE NAME
import re
from datetime import datetime
#DEFINE D/M TO ADD TO NAME
now = datetime.now().strftime('%d.%m').replace('0','')
path = 'H:LearningMohan'
files = os.listdir(path)
for file in files:
#CHOOSE ONLY .XLSX FILE
    if file.endswith(".xlsx"):
        os.rename(os.path.join(path, file)
                 , os.path.join(path, re.sub("[^0-9]", "",file) +'_DF_' + now + '.xlsx'))

来自

DF_25.xlsx
DF_28.xlsx
DF_30.doc

to

25_DF_03_May.xlsx
28_DF_03_May.xlsx
DF_30.doc

使用dd_mmm格式

_df用于检查以查找文件已重命名

import os
from datetime import *
dt=(datetime.today().strftime('%d_%b'))
path = 'H:LearningMohan'
files = os.listdir(path)
for file in files:
    filename,ext=os.path.splitext(file)
    if ext==".xlsx" and "_DF" not in filename:
        os.rename(os.path.join(path, file), os.path.join(path, filename.split('_')[-1].strip('.xlsx')+'_DF_'+dt+ext))
print(os.listdir()) 

最新更新