Как переименовать расширение файла, удалив даты архива
Я думаю, что этот код должен взять все мои файлы в папке и переименовать.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'