在 python 中使用 ast.literal_eval(open("filename").readlines()[0]) 出现语法错误
Syntax error using ast.literal_eval(open("filename").readlines()[0]) in python
当我尝试 运行 我的代码并从另一个文件导入数组时,我不断收到语法错误:
Traceback (most recent call last):
File "run.py", line 21, in <module>
passwords = ast.literal_eval(open("passwords.txt").readlines()[0])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 49, in literal_eval
node_or_string = parse(node_or_string, mode='eval')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 37, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
[‘test’]
^
SyntaxError: invalid syntax
片段 ['test'] 是外部文件 "passwords.txt" 的内容,但是让我感到困惑的是,在下面的代码中,如果我只包含前 2 个变量,代码 运行 非常好,但是当添加第二个时,它会抛出错误(所有变量中的文件内容也相同)
adjectives = ast.literal_eval(open("Adjectives.txt").readlines()[0])
nouns = ast.literal_eval(open("Nouns.txt").readlines()[0])
passwords = ast.literal_eval(open("passwords.txt").readlines()[0])
usernames = ast.literal_eval(open("usernames.txt").readlines()[0])
唯一的其他相关新代码是:
def WOPR():
login = raw_input("Username: ")
login_password = raw_input("Password: ")
login_password = psudo_encrypt(login_password)
for name in usernames:
if name == login:
for word in passwords:
if word == login_password:
print("Greetings " + login)
play(true, login)
else:
print("Incorrect Password \n-------Connection Terminated-------")
elif login == "Joshua":
print("Greetings Professor Falken \nWould you like to play a game?")
play(true, "Professor")
else:
WOPR()
有人知道是什么原因造成的吗?我错过了一个非常明显的语法问题吗?提前致谢
[‘test’]
^ ^
我标记的两个字符是弯撇号 (‘’
),而不是直撇号 ('
)。您可能通过从网站复制和粘贴代码,或者通过在不适合处理代码的文本编辑器中编辑代码来获得它们。
用普通的撇号替换这些字符。
当我尝试 运行 我的代码并从另一个文件导入数组时,我不断收到语法错误:
Traceback (most recent call last):
File "run.py", line 21, in <module>
passwords = ast.literal_eval(open("passwords.txt").readlines()[0])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 49, in literal_eval
node_or_string = parse(node_or_string, mode='eval')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 37, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
[‘test’]
^
SyntaxError: invalid syntax
片段 ['test'] 是外部文件 "passwords.txt" 的内容,但是让我感到困惑的是,在下面的代码中,如果我只包含前 2 个变量,代码 运行 非常好,但是当添加第二个时,它会抛出错误(所有变量中的文件内容也相同)
adjectives = ast.literal_eval(open("Adjectives.txt").readlines()[0])
nouns = ast.literal_eval(open("Nouns.txt").readlines()[0])
passwords = ast.literal_eval(open("passwords.txt").readlines()[0])
usernames = ast.literal_eval(open("usernames.txt").readlines()[0])
唯一的其他相关新代码是:
def WOPR():
login = raw_input("Username: ")
login_password = raw_input("Password: ")
login_password = psudo_encrypt(login_password)
for name in usernames:
if name == login:
for word in passwords:
if word == login_password:
print("Greetings " + login)
play(true, login)
else:
print("Incorrect Password \n-------Connection Terminated-------")
elif login == "Joshua":
print("Greetings Professor Falken \nWould you like to play a game?")
play(true, "Professor")
else:
WOPR()
有人知道是什么原因造成的吗?我错过了一个非常明显的语法问题吗?提前致谢
[‘test’]
^ ^
我标记的两个字符是弯撇号 (‘’
),而不是直撇号 ('
)。您可能通过从网站复制和粘贴代码,或者通过在不适合处理代码的文本编辑器中编辑代码来获得它们。
用普通的撇号替换这些字符。