当我尝试运行代码并从另一个文件导入数组时,我不断收到语法错误,提示:
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”的内容,但是令我感到困惑的是,在以下代码中,如果仅包含前两个变量,则代码运行得很好,但是添加了第二个变量后引发错误(所有变量中的文件内容也相同)
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’]
^ ^
我标记的两个字符是大写撇号(
‘’
),而不是直撇号('
)。您可能是通过从网站复制和粘贴代码,或者在不适合使用代码的文本编辑器中编辑代码来获得它们的。将这些字符替换为普通的撇号。
关于python - 在python中使用ast.literal_eval(open (“filename”).readlines()[0])的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412216/