Как я могу получить относительный путь моего исполняемого файла с использованием Python - PullRequest
0 голосов
/ 26 сентября 2019

Я преобразовал .py файл в exe, используя pyinstaller.Мой код извлекает данные из листа Excel, хранящегося в определенной папке, и использует их для обновления некоторых полей в JIRA (веб-страница).

В настоящее время я даю полный путь к листу Excel (c: \ desktop \ Filename.xlsx).Я не хочу, чтобы пользователь вводил полное местоположение файла Excel, тогда как просто предоставляю только имя файла.Для этого я хочу сохранить исполняемый файл и файл Excel в одном месте.Я хочу получить базовое местоположение исполняемого файла, а затем добавить местоположение с именем файла, чтобы найти местоположение файла Excel.

Пробовал файл , но это не работает?Выдача ошибки

Приведенный ниже код записан в исполняемом файле

import webbrowser as wb
import os
import xlrd as x
import time
import pyautogui as p

name = os.path.dirname(__file__)
val=input("Enter worksheet name that contains Issue ID and Dev Delivery Date details:\n")
filename = os.path.join(name,'val')
my_excel=x.open_workbook(filename)
sheet = my_excel.sheet_by_index(0)
j=0
if sheet.nrows==0:
    print("\nYou have not provided any data. Kindly provide Issue ID in column A and Dev Delivery Date as a character in column B [Format:26/Sep/19]")
else:
    if j<=i:
        for i in range(sheet.nrows):
            loc="https://jira.cvent.com/browse/"+sheet.cell_value(i,0)
            wb.open_new(loc)
            time.sleep(5)
            p.moveTo(1200,700);
            time.sleep(2)
            p.press('.')
            time.sleep(2)
            p.typewrite("Dev Delivery")
            time.sleep(2)
            p.press("enter")
            p.press("backspace")
            p.typewrite(sheet.cell_value(i,1))
            p.press("enter")
            j=j+1
        else:
            os.system("taskkill /im chrome.exe /f")

Вместо указания полного пути, я хочу дать только имя файла

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Вы можете получить относительный путь, используя переменную Python __file__ и соединив его с путем к папке с файлом:

import os

path = os.path.abspath(os.path.join(os.path.dirname(__file__), '/xlsx_folder'))

Затем мы можем открыть файл с именем файла

my_excel = x.open_workbook(os.path.join(path, filename))
0 голосов
/ 26 сентября 2019

У вас есть ошибка здесь "filename = os.path.join (name, 'val')" из-за того, что вы указали его как str, но не как атрибут, попробуйте это:

filename = os.path.join(name,val)
...