简体   繁体   中英

How do I get my .xlsx file I created using Pandas (python) to save to a different file location?

I've just started out with Pandas and I have gotten my xls file to convert into an xlsx file using Pandas however I now want the file to save to a different loaction such as OneDrive I was wondering if you could help me out?

Here is the code I have written for it:

import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import os
 
#Deleting original file
path = (r"C:\Users\MQ\Downloads\Incident Report.xls")
os.remove(path)
print("Original file has been deleted :)")

#Identifying the xls file
excel_file_1 = 'Incident Report.xls'
df_first_shift = pd.read_excel(r'C:\Users\MQ\3D Objects\New Folder\Incident Report.xls')
print(df_first_shift)

#combining data
df_all = pd.concat([df_first_shift])
print(df_all)

#Creating the .xlsx file
df_all.to_excel("Incident_Report.xlsx")

Use pd.ExcelWriter by passing in your destination path!

destination_path = "path\\to\\your\\onedrive\\filename.xlsx"
writer = pd.ExcelWriter(destination_path , engine='xlsxwriter')
df.to_excel(writer, sheet_name='sheetname')
writer.save()

To write to cloud OneDrive the following code is suggested. I did not run it but offer it as a suggestion.

REFER to www.lieben.nu's example for uploading file to onedrive`

import requests 
import io
import pandas as pd

def cloudOneDrive(filename, bytesIO):
    '''
    Reference : https://www.lieben.nu/liebensraum/2019/04/uploading-a-file-to-onedrive-for-business-with-python/

    Write to cloud (bytesIO) 

    '''

    data = {'grant_type':"client_credentials", 
            'resource':"https://graph.microsoft.com", 
            'client_id':'XXXXX', 
            'client_secret':'XXXXX'} 
    URL = "https://login.windows.net/YOURTENANTDOMAINNAME/oauth2/token?api-version=1.0"

    # FIXME: put coder top open OneDrive file here as bytes stream
    r = requests.put(URL+"/"+filename+":/content", data=bytesIO, headers=headers)

    if r.status_code == 200 or r.status_code == 201:
        print("succeeded")
        return True
    else:
        print("Fail", r.status_code) 

fn = 'junk.xlsx'
with io.BytesIO() as bio:
    with pd.ExcelWriter(bio, mode='wb') as xio:  
        df.to_excel(bio, sheet_name='sh1')
    bio.seek(0)
    cloudOneDrive(fn, bio)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM