0
当我尝试运行我的代码并从另一个文件中导入数组时,我不断收到语法错误:在python中使用ast.literal_eval(open(“filename”)。readlines()[0])的语法错误
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()
任何任何想法可能是什么原因造成这种情况?我错过了一个非常明显的语法问题吗?在此先感谢
*文件内容也是相同的所有变量* ...你确定吗?否则,这是不可能的:*如果我只包含前2个变量,代码运行得很好*。请显示内容,以便我们重现。 – Parfait
一般而言,您不应该试图在一行代码中塞满太多东西。明智地使用变量来存储中间结果。另外,'read()'一次返回一行。无需读取整个文件。 –
@ Code-Apprentice感谢您的建议,我有所得到,但这不是什么大事,它更多的是我为自己做的一个概念证明,所以它不会超过10个字符串每个阵列都不会太大 – dbradley