如何在python中更改包含日期的文件名

2024-06-17 12:34:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我尝试过使用time-date函数,并将其声明为变量并将其复制到代码中,但没有成功

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

Tags: 文件nameimportdatetimedate文件名aschange
2条回答

我相信你要做的是,每天打开一个excel文件,并将其文件名重命名为current date,之前的excel文件的日期是昨天。在

import datetime
import pyexcel as p

yesterday = (datetime.date.today()-datetime.timedelta(1)).strftime("%Y%m%d")

today = datetime.date.today().strftime("%Y%m%d")

p.save_book_as(file_name="Q:\Valuations\Currency Options\YieldX Daily Stats" + yesterday + ".xls",
               dest_file_name='YieldX Daily Stats' + today + '.xlsx')

上面的代码在执行时将把昨天创建的.xls文件的名称(带时间戳)更改为当前日期。在

示例:-

如果昨天存在一个名为YieldX Daily Stats20190530.xls的文件,那么今天它的名称将被修改为YieldX Daily Stats20190531.xls

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

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)

相关问题 更多 >