Открытие Excel через Python на MacOS - PullRequest
0 голосов
/ 16 мая 2018

Итак, я написал программу, которая извлекает данные с определенных веб-сайтов, а затем экспортирует эти данные во временный файл Excel (который создается по заданному пути, если он еще не существует). Ниже приведен код для основной функции. Часть, с которой у меня возникают проблемы, начинается с book = xlwt.Workbook(), но я хотел включить все, чтобы обеспечить полную ситуацию. Я запрограммировал программу на компьютере с Windows 10, и все работало нормально. Тем не менее, мне нужно изменить это, чтобы работать на Mac. Я знаю, с Mac я получаю хотя бы часть browser.close(), но после этого я понятия не имею, работает ли что-нибудь. Во-первых, я не уверен, пишу ли я вообще в файл Excel, но в основном у меня возникают проблемы с поиском пути к файлу Excel и запуском самого файла. Может кто-нибудь помочь мне понять, как сделать то же самое, что я делаю ниже, но только для Mac вместо этого?

def main():
    now = datetime.datetime.now()
    option = selenium.webdriver.ChromeOptions()
    browser = selenium.webdriver.Chrome()

    keyword = None
    urlList = None

    # two different lists of data I scrapped
    wi = webInfo(browser, keyword)
    mi = mobileInfo(browser, keyword)

    urlList = wi+mi

    browser.close()

    book = xlwt.Workbook()
    sheet1 = book.add_sheet('sheet1')

    for i in range(len(urlList)):
        for j in range(len(urlList[i])):
            sheet1.write(i, j, urlList[i][j])

    name = "random.xls"
    book.save(name)
    book.save(TemporaryFile())

    excelFile = "C:/Users/me/PycharmProjects/test/random.xls"
    excelEx = r"C:/Program Files/Microsoft Office/root/Office16/EXCEL"

    subprocess.Popen([excelEx, excelFile])

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете использовать модуль os для работы с путями в Mac, если у вас ограниченный доступ к macOS.

Например, давайте предположим, что вы хотите поместить выходной файл Excel в тот же каталог, что и ваш pythonзатем файл

import os

os.chdir(os.getcwd())
name = "random.xls"
book.save(name)

excelFile = os.path.abspath('random.xls')

# just try without these lines first and open file manually
excelEx = "You need to show the excel executable at this point"
subprocess.Popen([excelEx, excelFile])
...