我正在尝试保存我有一些凭据的文件。为了不在文件中清除密码,我使用pycrypto
模块对其进行了加密。但是当我尝试用结果字符串保存我的文件时,我有一个错误:
# -*- coding: utf-8 -*-)
SyntaxError: EOL while scanning string literal
(例如在字符串'tý}DŠÇ{÷*6Ù·®'
上)当我在IDLE中通过F5运行我的代码时(保存就可以了)。请注意,此字符串可以在IDLE shell中正常使用:
>>> s = 'tý}DŠÇ{÷*6Ù·®'
>>> s
't\xfd}\x7fD\x8a\xc7{\x17\xf7\xad*6\xd9\xb7\xae'
>>>
你能帮帮忙吗?谢谢!
编辑:这可能不太清楚:这个字符串是在python程序中,我不是想在外部文件中写它。
另一件事:看起来似乎导致错误的字符(hexa中的\x7f
)被SO解释器删除了。
答案 0 :(得分:2)
除非您明确要求使用字符串格式,否则不应将加密数据视为字符串。十六进制数字;文件应该以二进制模式打开,不应该将这些数据打印到控制台。
答案 1 :(得分:0)
我使用zlib
代替(没有真正的加密,但密码不再清晰),这会产生ASCII字符,所以现在没问题......当然这并不能解决我最初的问题,但我花了已经有太多时间试图解决它。感谢Ignacio的回答。