如何从python中编写.py文件,使其类型不应该像'带有Windows CRLF的ASCII文件'
因为当我在Windows中运行file.write(data)
时,它会写入文件,但是当我尝试时
eval(open(file.py).read())
由于每行上的Windows CRLF而失败并出现语法错误......
查看错误日志 - traceback
ERROR:web-services:[25]: info = eval(tools.file_open(terp_file).read(-1))
ERROR:web-services:[26]: File "<string>", line 1
ERROR:web-services:[27]: {
ERROR:web-services:[28]:
答案 0 :(得分:1)
问题不在于CRLF,而是eval
用于评估单个表达式,而不是整个程序。
您可以使用exec
从字符串执行程序,或execfile
直接从文件执行程序。
无论如何要回答原始问题,您可以通过以二进制模式打开文件来避免编写CRLF:f = open(filename, 'wb')
答案 1 :(得分:1)
我认为你正在寻找execfile
功能。
答案 2 :(得分:1)
你可以:
open(file, 'wb')
或...... data.replace('\r','')
我会避开exec
并使用execfile
as mentioned by SilentGhost。
答案 3 :(得分:0)
只需以二进制模式打开文件:open("myfile.py", "rwb")