Проблема с путем в моей программе Python на Mac OS?

Сделал быстрый скрипт на моем компьютере с Windows, чтобы запросить API и записать в электронную таблицу. Проблема в том, что человек, запускающий это, будет на Mac, поэтому я пытаюсь перенести его на Mac OS, но я считаю, что столкнулся с ошибкой пути к файлу? Хотя все выглядит правильно, поэтому я в замешательстве. Спасибо заранее за любую помощь. Я очень плохо знаком с маком.

Модуль Excel, который я использую, не может открыть книгу, которая у меня есть. Это опенпиксл.

root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
save =tkFileDialog.asksaveasfilename(defaultextension = ".xlsx",initialfile=file_path)
main(file_path,save)

def main(load,save):                        
try:
    wb = load_workbook(load)
except: 
    print load,save
    return

Я ожидаю, что рабочая книга будет открыта, но вместо этого она печатает путь к файлу и заканчивает main().

Вот пути к файлам, которые он распечатывает:

/Users/edwin/Downloads/190117 CA Device Roster.xlsx /Users/edwin/Downloads/:Users:edwin:Downloads:test.xlsx

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
163
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
except: 

. Почему вы явно перехватываете все исключения, а затем не предоставляете их пользователю? Игнорирование исключений не устраняет проблему — оно просто мешает вам ее видеть. Это означает, что ваш код не работает, и вы не знаете, почему.

Если вам нужна дополнительная отладка в вашем except, это нормально, просто после этого вызовите исходное исключение:

except Exception as e:
    print(load,save)
    raise e

Все, кроме раскрытия полученного вами исключения, скроет ваши ошибки, не оставив вам выбора, кроме предполагать, что происходит не так. Хорошие инженеры не гадают — увеличивают логирование.

ааа, спасибо, логично. Я самоучка <1 года, так что многому еще предстоит научиться, хотя я уже видел этот синтаксис раньше. Я не понимал, что это не напечатает ошибку. Кажется, произошла ошибка импорта: «вы должны установить PIL для извлечения объектов изображения», которую я смог прокачать и запустить свой код :) еще раз спасибо

alexander 18.01.2019 20:44

Другие вопросы по теме