首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有默认windows crlf的情况下生成py文件?

如何在没有默认windows crlf的情况下生成py文件?
EN

Stack Overflow用户
提问于 2010-04-29 20:26:18
回答 4查看 918关注 0票数 1

如何从python中编写一个.py文件,使其类型不应该像“带有Windows CRLF的ASCII文件”

因为当我在windows中运行file.write(data)时,它会写文件,但当我尝试eval(open(file.py).read())时,它会失败,并给出语法错误,因为windows CRLF在每一行上......

请参阅错误日志-回溯

代码语言:javascript
复制
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]:
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-29 20:37:05

您可以:

  1. 以二进制模式写入文件,方法是先使用open(file, 'wb')或...
  2. 从字符串中删除CR-LFs,然后再使用类似于data.replace('\r','')

的命令进行写入

我会避开exec,转而使用execfile as mentioned by SilentGhost

票数 1
EN

Stack Overflow用户

发布于 2010-04-29 20:29:53

问题不在于CRLF,而在于eval用于计算单个表达式,而不是整个程序。

可以使用exec从字符串执行程序,也可以使用execfile直接从文件执行程序。

要回答您最初的问题,您可以通过以二进制模式打开文件来避免编写CRLF:f = open(filename, 'wb')

票数 1
EN

Stack Overflow用户

发布于 2010-04-29 20:30:45

我认为您正在寻找execfile函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2737208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档