Я пытаюсь скопировать данные из одного файла excel в другой автоматически с помощью python, в настоящее время мне приходится вручную обновлять дату в имени файла 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
Несколько. Да, это работает в фоновом режиме. Я просто нажимаю «Выполнить» с помощью Jupyter, и он запускает файлы, которые я вставил только в ту часть кода, с которой я борюсь. Большое спасибо за быстрый ответ
какой формат даты в файлах?
Я считаю, что вы пытаетесь каждый день открывать файл excel и переименовывать его имя файла в текущую дату, где предыдущий файл 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)
Ваш код тоже хорош, можете использовать его по-другому. Спасибо за ответ, я неделями боролся с проблемой
Вам нужно обновить только одно имя файла или несколько? Программа должна работать в фоновом режиме?