Как переименовать расширение файла, удалив даты архива

Я думаю, что этот код должен взять все мои файлы в папке и переименовать.pdf_(дата) в.pdf. Однако это не так.

import os,sys
folder = 'C:\/MattCole\/test'
for filename in os.listdir(folder):
       infilename = os.path.join(folder,filename)
       if not os.path.isfile(infilename): continue
       oldbase = os.path.splitext(filename)
       newname = infilename.replace('.pdf*', '.pdf')
       output = os.rename(infilename, newname)

Пример: file1.pdf_20160614-050421 переименован в file.pdf

В каталоге будет несколько файлов. Может кто-нибудь сказать мне, что я делаю не так? Я также попытался сосчитать расширение и использовал '.pdf????????????', '.pdf'

2 ответа

Это немного глупо, у вас есть какой-то совершенно хороший код, который вы не используете. Вы должны использовать это.

import os,sys
folder = 'C:\/MattCole\/test'
for filename in os.listdir(folder):
       infilename = os.path.join(folder,filename)
       if os.path.isfile(infilename):
           oldbase, oldext = os.path.splitext(infilename)
           if oldext.startswith('.pdf'):           
               output = os.rename(infilename, oldbase+'.pdf')

Вы хотите разделить старое имя файла на _, а затем принять первую часть как новое имя:

>>> old_name = 'file1.pdf_20160614-050421'
>>> new_name = old_name.split('_')[0]
>>> new_name
'file1.pdf'
Другие вопросы по тегам