python为什么不断抛出'源代码字符串不能包含空字节'

问题描述 投票:-1回答:2

我正在运行一个程序,该程序从名为questions.txt的文件中读取字典。

{
1:{0:'question',1:{1:'answer1a',2:'answer1b'},2:'answer2'},
2:{0:'question',1:'answer1',2:'answer2'},
3:{0:'question',1:'answer1',2:'answer2'},
4:{0:'question',1:'answer1',2:'answer2'}
}

我正在使用文件dictict.pyw中的这段代码来读取字典的某些部分。

fQDict = open("questions.txt", "r")
QDict = " "
for i in fQDict.read().split():
    QDict += i
fQDict.close()
QDict = eval(QDict)

print(QDict)
print(QDict[1])
print(QDict[1][0])
print(QDict[1][1])
print(QDict[1][1][1])

[当我运行程序时,python在source code string cannot contain null bytes行上抛出一个错误,说QDict = eval(QDict),为什么?

python
2个回答
1
投票

您的文件包含空字节字符

sed -i 's/\x0//g' null.txt

这应该有助于从文件中删除这些字符。

更多参考,请参见:https://stackoverflow.com/a/2399817/230468


0
投票

谢谢大家的建议和解答。我发现的解决方案是将文件从写字板更改为记事本,因为写字板将代码嵌入到文件中。

© www.soinside.com 2019 - 2024. All rights reserved.