我有一个我认为很简单的任务。我需要创建一个在行尾使用 unix LF 约定的文本文件。然而,当我尝试使用 pandas .to_csv 来完成此操作时,我最终得到了 CR LF。如果我留在我的机器上并且我使用 python 来处理所有事情,这不会成为问题。但我不是。该代码将成为同事将使用的应用程序的一部分,并且该文件将被发送给第三方以实现自动化。代码如下:
df.to_csv("filename.txt", sep = '\t',line_terminator = '\n')
它位于我的代码中间,但当文件保存在目标文件夹中时,它总是切换回 CR LF。我认为这可能与Windows“helpful“。我尝试过使用this没有运气的解决方案类型。我也没有运气找到dos2unixPython 的类型包。无论如何,我可以编写以 '\n' 结尾的行并将其保留在 Windows 中(如果可能的话使用 to_csv)?
我使用的是 Python 2.7 和 Windows 7。
编辑:我知道 notepad++,但我试图用 Python 编写这一切,所以我的同事只需单击一个按钮(我将使用 Tkinter 并在完成后将其冻结为 .exe)。 .txt 可以采用 Windows 格式,但我会将相同的信息写入 .MAT 和 .ref 文件。在这些文件中,它需要“\n”行尾,但 Windows 仍然给我“\r\n”。
请注意,此答案特定于 Python 2 的 CSV 处理。
to_csv
默认打开文件'w'
mode 默认为文本模式。在 Windows 上文本模式翻译\n
to \r\n
。请改为以二进制模式打开文件,如果框架中有非 ASCII 文本,请指定编码。
df.to_csv('filename.txt',sep='\t',mode='wb',encoding='utf8')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)