我对代码非常陌生,正在尝试编写脚本以打开另一个列表。我不断收到错误
SyntaxError:行继续符后的意外字符。
with open(Users/Laura/Desktop/Diss/gene\ list.xlsx) as list_file:
for line in list_file:
if line.strip():
keywords.add(line.strip())
任何人都可以告诉我我做错了什么吗?
答案 0 :(得分:0)
我在第一行看到三个问题:一个是句法问题,两个是逻辑问题。
open
函数需要一个 string 。因此,您需要在文件名周围添加单引号或双引号。不使用它们意味着Python将第一个“单词”解释为变量名,之后它有点“ ...?”。因为该行的其余部分没有任何意义。
Python需要对字符串中的某些“特殊”字符进行转义,以使其特殊化(\n
转换为文字换行符)或删除的特殊状态(\\
仅插入一个反斜杠,而不是两个-这是必需的,因为单个\
字符本身就是一个特殊字符)。转义任何其他字符时,\
不会被静默删除-保留在字符串中。但是,这意味着您实际上是在寻找带有这些反斜杠的文件名。而且您没有该文件。
您显然正在使用类似linux的计算机,并尝试访问您的本地文件之一。但是,因为您没有在文件系统的根目录下开始路径名,所以它希望您在当前文件夹内Users
中有一个文件夹(然后在其中有Laura
,等等)。您需要在开头添加一个斜杠,以使完整( absolute )路径正确无误,或者删除部分Users/Laura/
并以 relative 路径。
相对路径必须假定您当前的工作目录实际上是/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:
,从哪个目录启动程序也无所谓了(并且有了额外的好处,它也适用于其他用户)。