当前位置: 首页 > 面试题库 >

在Mac vs Windows上的python中处理\ r \ n vs \ n换行符

陈宜修
2023-03-14
问题内容

我有一个python脚本,当在Windows计算机上运行和在Mac上运行时,该脚本给出了不同的输出。在深入研究时,我发现这是因为Python在Mac上(从文件中)读取换行符时,它读入\r\n,而在Windows中以某种方式\r消失了。

因此,如果我\n脚本中的每个内容都更改为\r\n,则在Mac上运行良好。但是,如果我这样做,它将在Windows PC上停止工作。

是否有解决此问题的简便方法?


问题答案:

Python 2:

我想这可能取决于您从中读取的内容,但是内置的open()函数带有一个’mode’参数,如果您为该模式传递’U’,Python
2将在跨平台方式透明。它要求Python具有通用的换行符支持,但请对其进行测试!

https://docs.python.org/2/library/functions.html#open

Python 3:

在python 3中,该'U'模式是默认行为,如文档所述:

允许使用其他模式字符'U',该字符不再起作用,被认为已弃用。它以前在文本模式下启用了通用换行符,这成为了Python
3.0中的默认行为。有关更多详细信息,请参考newline参数的文档。

https://docs.python.org/3/library/functions.html#open



 类似资料:
  • 问题内容: 尝试简单地替换一些新行。尝试了3种不同的方法,但我没有任何改变: 这些都应该起作用,但是我仍然可以换行。它们是双精度的:“ \ r \ r”。那不应该让这些失败吗? 问题答案: 已经有在换行符之前 替换 插入* 标签的[]功能: ~~~~* 示例(键盘): 但是,如果仍然无法正常工作,请确保文本被双引号引起来。 那是因为单引号不会“扩展”转义序列,例如与双引号字符串相比。引用PHP文档

  • 问题内容: 我已经看到了许多使用php邮件功能的示例。其中有些使用\ r \ n作为标题的换行符,有些使用\ n。 与 哪一个是正确的? 有时我遇到过使用\ r \ n并且某些邮件客户端将标头的一部分解释为邮件文本(丢失这些标头信息)的情况-这是因为\ r \ n错误吗? 问题答案: CRLF 应根据php文档使用。此外,为了符合RFC 2822条 规范线必须由回车符进行分隔,CR 立即 随后换行

  • 问题内容: 对于几种语言,已经多次询问了此信息,但我无法使其正常工作。我有这样的字符串 而且我想,以取代与使用 但不会被替换。我试图使用此RegEx工具进行验证,但看到的结果相同。输入的字符串不匹配。我究竟做错了什么 ? 问题答案: 这个对我有用。 结果: 您的问题在其他地方。

  • 问题内容: 我有一个张贴表单,可将​​我的文本插入MySQL数据库。 我用 并希望替换自动添加的。 我试过了 但始终包含在我的数据库条目中。 我怎样才能解决这个问题? 问题答案: 您尝试过的所有变体的主要问题在于,这两个和都是转义字符, 只有在双引号字符串中使用它们时才会转义 。 在PHP中,和之间有很大的区别。注意第一个中的单引号,第二个中的双引号。 因此: 将产生一个包含斜杠,“ r”,另一个

  • 问题内容: 我见过很多开发人员使用不同的方法,通过新的生产线来分割字符串,但我很困惑这是正确的:或只? 问题答案: 用于Unix系统(包括Linux和OSX)。 主要用于Windows。 用于真正的旧Mac。 使用常量代替这些字符,以实现平台之间的可移植性。

  • 问题内容: 什么是在python 2.7中进行并行处理的简单代码?我在网上找到的所有示例都是令人费解的,其中包括不必要的代码。 我如何做一个简单的蛮力整数分解程序,在其中我可以在每个核(4)上分解一个整数?我的真实程序可能只需要2个内核,并且需要共享信息。 我知道并存python和其他库,但是我想将使用的库数保持最少,因此我想使用和/或库,因为它们是python附带的 问题答案: 从python中