Относительный путь к полному пути в Elisp

Для всех, кто заинтересован, это код, который я использовал для решения моей проблемы с токеном доступа:

def save_windows_refreshtoken(app_name, client_id, client_secret):

#import adal
#import requests
import json
import pandas as pd


# OAuth endpoints given in Outlook API documentation
authorization_base_url = 'https://login.microsoftonline.com/common/oauth2/authorize'
token_url = 'https://login.microsoftonline.com/common/oauth2/token' #provides a refresh and access token

redirect_uri = "http://localhost:8000"

from requests_oauthlib import OAuth2Session
outlook = OAuth2Session(client_id,redirect_uri=redirect_uri)

# Redirect  the user owner to the OAuth provider (i.e. Outlook) using an URL with a few key OAuth parameters.
authorization_url, state = outlook.authorization_url(authorization_base_url)
print('Please go here and authorize,', authorization_url)

#The above redirects you to a localhost page (which is blank) but returns a string containing a code which can be used below
#rememebr the search for "&" because there's a couple of bits of data after the code that need to be deleted from the code string before it can be used

# Get the authorization verifier code from the callback url
redirect_response = input('Paste the full redirect URL here:')

# Fetch the access token
token = outlook.fetch_token(token_url,client_secret=client_secret,code=redirect_response)


#convert the returned token json into a dataframe
j_dump = json.dumps(token, sort_keys=True,indent=4, separators=(',', ': ')) #pull out the value data from the json file, messages are stored in value

df = pd.read_json(j_dump) #read the json file into a dataframe

first_row = df.iloc[0] #pull the first row so we can format a new table from it

d = {
    'app_name' : pd.Series([app_name]),
    'refresh_token' : pd.Series([first_row.refresh_token])
    }
data = pd.DataFrame(d)
19
задан pupeno 15 November 2008 в 01:46
поделиться

3 ответа

'file-truename

Из документации:

Возврат truename ИМЕНИ ФАЙЛА, которое должно быть абсолютным. truename имени файла найден путем преследования символьных ссылок и на уровне файла и на уровне каталогов, содержащих его, пока никакие ссылки не оставляют ни на каком уровне.

другое предложенное решение ('расширять-имя-файла) оставляет символьные ссылки на месте, которые могут или не могут быть тем, что Вы хотите. 'файл-truename использует 'расширять-имя-файла, таким образом, они оба определят каталог по умолчанию родственника пути для буфера (который является тем, что Вы просите).

После наблюдения комментария/вопроса к другому ответу, проблема состоит в том, что каталог по умолчанию является каталогом по умолчанию буфера, который называет 'загрузку.

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

;; this is in the file being loaded
(let ((default-directory (file-name-directory load-file-name)))
   (file-truename "blih"))
22
ответ дан 30 November 2019 в 03:03
поделиться

Я закончил тем, что использовал:

(expand-file-name "relative/path" (file-name-directory load-file-name))
13
ответ дан 30 November 2019 в 03:03
поделиться

Можно использовать эти expand-file-name функция для преобразования относительного имени файла или пути к абсолютному имени файла/пути. Посмотрите здесь для получения дополнительной информации.

9
ответ дан 30 November 2019 в 03:03
поделиться
Другие вопросы по тегам:

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