Как изменить имя файла, которое автоматически содержит дату в python

Я пытаюсь скопировать данные из одного файла 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

Вам нужно обновить только одно имя файла или несколько? Программа должна работать в фоновом режиме?

Zaraki Kenpachi 31.05.2019 08:09

Несколько. Да, это работает в фоновом режиме. Я просто нажимаю «Выполнить» с помощью Jupyter, и он запускает файлы, которые я вставил только в ту часть кода, с которой я борюсь. Большое спасибо за быстрый ответ

Muhammad Amod 31.05.2019 08:14

какой формат даты в файлах?

Zaraki Kenpachi 31.05.2019 08:34
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
2 241
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я считаю, что вы пытаетесь каждый день открывать файл 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

Спасибо, спасибо, этот код применим ко многим другим областям,

Muhammad Amod 31.05.2019 08:42

Мой подход состоит в том, чтобы разделить имя файла на часть, содержащую дату и остальные, а затем заменить дату на текущую.

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)

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

Muhammad Amod 31.05.2019 08:49

Другие вопросы по теме

Похожие вопросы

Как я могу улучшить этот алгоритм угадывания?
Вложенные списки в маленькие списки (разделенные по категориям)
Как анализировать значения нескольких индексов и создавать файл csv при анализе данных json в python
У меня есть пара команд Linux, которые я хочу запустить на компьютере с Windows. Как запускать команды Linux из Python в Windows
Arxiv API не принимает все условия запроса
Для ключевых слов (строк) в одном столбце и значений (поплавков) в другом я хочу подсчитать количество ключевых слов в порядке, которые попадают на единицу диапазона значения
Я хочу динамически увеличивать яркость и контрастность изображений, чтобы программа была применима для любых новых изображений
Создавайте файлы .txt из файлов PDF, сохраняя имя таким же, как в формате PDF, используя python
Многопроцессорность/многопоточность для запросов к базе данных в Python
Python: слипание PSO <s>и код работает только при движении мыши</s>