首页 > 解决方案 > 如何在python中自动更改包含日期的文件名

问题描述

我正在尝试使用python自动将数据从一个excel文件复制到另一个文件,目前我必须每天早上手动更新excel文件名中的日期。有没有办法自动更新excel文件名中的日期。我对任何形式的编程都很陌生,试图学习保住我的工作。

我尝试使用时间日期函数并将其声明为变量并将其复制到代码中但没有运气

import datetime

Filedate= (datetime.date.today()-datetime.timedelta(1))

exceldate= Filedate.strftime("%Y",)+Filedate.strftime("%m",)+Filedate.strftime("%d",)


import pyexcel as p

p.save_book_as(file_name="Q:\Valuations\Currency Options\YieldX Daily Statsexceldate.xls",#CHANGE DATE #manual entry. 
               dest_file_name='YieldX Daily Stats20190522.xlsx')#CHANGE DATE manual entry

标签: python

解决方案


我的方法是将文件名拆分为包含日期和其余部分的部分,然后将日期替换为当前日期。

import os
import datetime
import re

# get xls files
xls_files = [file for file in os.listdir(os.getcwd()) if file.endswith('.xls')]

# get current date
now = datetime.datetime.now()

# change names
for item in xls_files:
    # split name and date part
    name_parts = item.split('.')
    get_date = re.findall('\d+-\d+-\d+', name_parts[0])
    name_string_part = name_parts[0].replace(get_date[0], '')
    # create new name
    new_name = name_string_part + str(now.day) + '-' + str(now.month) + '-' + str(now.year) + '_' + '.xls'
    # rename file
    os.rename(item, new_name)

推荐阅读