Как переместить файл excel с динамическим именем (с фактической датой)?

#python #pandas #shell #databricks #azure-databricks

Вопрос:

Я попытался сохранить файл excel в базе данных azure с динамическим именем:

     import pandas as pd
    
    #initialize the excel writer
    writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
    
    #store your dataframes in a  dict, where the key is the sheet name you want
    frames = {'sheet_1': df_1, 'shet_2': df_2,
            'sheet_3': df_3}
    
    #now loop thru and put each on a specific sheet
    for sheet, frame in  frames.items(): # .use .items for python 3.X
        frame.to_excel(writer, sheet_name = sheet)
    
    #critical last step
    writer.save()
 

Затем я сделал это:

 %sh
sudo mv test.xslx /dbfs/mnt/
 

Это работает, но я хотел бы добавить дату к имени файла:

 test_2= 'test'   datetime.today().strftime("%d%m%y")   '.xlsx'
 

Но я не знаю, как это сделать с %sh

Ответ №1:

если у вас есть только один файл в этом каталоге, просто сделайте

 mv test*.xlsx /dbfs/mnt/....
 

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

 mv test$(date  '%d%m%Y').xlsx /dbfs/mnt/....
 

Комментарии:

1. Спасибо, я пытался, но получил: mv: не могу сказать ‘test02092021.xlsx’: Такого файла или каталога нет. Я думаю, это происходит, когда я пишу в начале

2. да, вам нужно иметь динамическое имя в коде python. Или вы можете сделать: mv test.xlsx /dbfs/mnt/..../test$(date '%d%m%Y').xlsx