我已使用pyinstaller将.py文件转换为exe。我的代码从存储在特定文件夹中的Excel工作表中获取数据,并使用它们更新JIRA(网页)中的某些字段。
当前,我给出了Excel工作表的完整路径(c:\ desktop \ Filename.xlsx)。我不希望用户输入excel文件的完整位置,而仅提供文件名。为此,我正在考虑将可执行文件和excel文件放在同一位置。我想要的是获取可执行文件的基本位置,然后将该位置附加文件名以到达excel文件位置。
尝试过file,但无法正常工作吗?出现错误
下面的代码被写在可执行文件中
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")
而不是提供完整路径,我只想提供文件名
您在这里有一个错误“ filename = os.path.join(name,'val')”,因为您将其放在str的位置,而不是属性,请尝试以下操作:
filename = os.path.join(name,val)
您应该使用filename = os.path.abspath(name)
而不是filename = os.path.join(name,'val')
。
您可以使用以下文件名获取相对路径并打开文件
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))