В первой строке я вижу три проблемы: одну синтаксическую и две логические.
функция open
ожидает строку . Поэтому вам нужно добавить одинарные или двойные кавычки вокруг имени файла. Неиспользование их означает, что Python интерпретирует первое «слово» как имя переменной, и после этого оно вроде «…?» потому что остальная часть этой строки не имеет смысла.
Python требует экранирования определенных 'специальных' символов в строке, либо делает их специальными (\n
переводит в буквальный символ новой строки), либо remove их особый статус (\\
вставляет только одну обратную косую черту, а не две - это необходимо, потому что сам символ \
является специальным символом). При экранировании любого другого символа \
не удаляется без предупреждения - он остается в строке. Однако это означает, что вы буквально ищете имя файла с этими обратными слешами в них. И у вас нет этого файла.
Вы, очевидно, работаете на машине, похожей на Linux, и пытаетесь получить доступ к одному из ваших локальных файлов. Но поскольку вы не начинаете путь в корневом каталоге вашей файловой системы, он ожидает, что у вас есть папка Users
внутри вашей текущей папки (а затем Laura
внутри нее и т. Д.). Вам нужно либо добавить одну косую черту в начале, чтобы полный ( абсолютный ) путь был правильным, либо удалить деталь Users/Laura/
и получить относительный путь.
Относительный путь должен предполагать, что ваш текущий рабочий каталог на самом деле /Users/Laura
. Если это не так, вы можете заставить Python найти его для вас:)
import os
from os.path import expanduser
home = expanduser("~")
print (home)
должно показать что-то вроде
/Users/Laura
Теперь у вас есть собственный "домашний" каталог, вы можете использовать
with open(home+"/Desktop/Diss/gene list.xlsx") as list_file:
и больше не имеет значения, из какого каталога вы запускаете программу (и с дополнительным бонусом, что она также будет работать для других пользователей).