Открытие книги xlxs в Python, автоматизация имени файла - PullRequest
1 голос
/ 01 ноября 2019

Я большой пользователь R, но очень плохо знаком с Python. Я пытаюсь редактировать скрипт Python, который является частью большего рабочего процесса. Сценарий начинается с открытия документа .xlsx. Этот документ создается в более ранней части рабочего процесса, и соглашение об именах всегда YYYYMMDD_location (например: 20191101_Potomac). Я хотел бы настроить скрипт Python таким образом, чтобы он автоматически вставлял сегодняшнюю дату и эту переменную местоположения в путь.

В R, чтобы не приходилось вручную обновлять имя пути при каждом запуске скрипта, ябудет делать что-то вроде:

#R

library(openxlsx)

dir_name <- 'C:/path/to/file/'
location_selection <- 'Potomac'
date <- (paste(format(Sys.Date(),"%Y%m%d"))

open.xlsx(paste0(dir_name, date, "_", location_selection, ".xlsx")

Я посмотрел, как настроить что-то подобное в Python (например: Создать полный путь к файлу в Python ), но не добился большого прогрессав производстве чего-то, что работает.

# Python

import datetime

dir_name = 'C:\path\to\file'
location_selection = todays_date.strftime('%Y%m%d')+'_Potomac'
suffix = '.xlsx'
file = os.path.join(dir_name, location_selection + suffix)

book = xlrd.open_workbook(file)


1 Ответ

2 голосов
/ 01 ноября 2019

Не нужно использовать модуль os, так как вы указываете полный путь к каталогу.

from datetime import date

dir_name = r'C:\path\to\file'
location_selection = f"{date.today().strftime('%Y%m%d')}_Potomac"
suffix = '.xlsx'

file_name = f'{dir_name}\{location_selection}{suffix}'

book = xlrd.open_workbook(file_name)

Мы также можем добавить больше переменных:

from datetime import date

dir_name = r'C:\path\to\file'
today = date.today().strftime('%Y%m%d')
location = "Potomac"
suffix = '.xlsx'

file_name = f'{dir_name}\{today}_{location}{suffix}'

book = xlrd.open_workbook(file_name)

Наконец, мы можем создатьфункция, которую можно использовать повторно:

from datetime import date

def get_filename(location, dir_name=r'C:\path\to\file', suffix=".xlsx", date_format = '%Y%m%d'):
    today = date.today().strftime(date_format)
    return f'{dir_name}\{today}_{location}{suffix}'

book = xlrd.open_workbook(get_filename("Potomac"))
book2 = xlrd.open_workbook(get_filename("Montreal"))
book3 = xlrd.open_workbook(get_filename("NewYork"))
...