3

我有我认为很简单的任务。我需要在行尾创建一个使用 unix LF 约定的文本文件。但是,当我尝试使用 pandas .to_csv 完成此操作时,我最终得到了 CR LF。如果我呆在我的机器上并且我对所有事情都使用 python,这不会是一个问题。但我不是。该代码将成为同事将使用的应用程序的一部分,并且该文件正在发送给第三方以实现自动化。代码如下:

df.to_csv("filename.txt", sep = '\t',line_terminator = '\n')

它位于我的代码中间,但当文件保存在目标文件夹中时,它总是切换回 CR LF。我认为这可能与 Windows“有帮助”有关。我试图使用这种类型的解决方案,但没有运气。我也没有任何运气找到 Python 的dos2unix类型包。无论如何,我可以编写以 '\n' 结尾的行并将其粘贴在 Windows 中(如果可能,使用 to_csv)?

我正在使用 Python 2.7 和 Windows 7。

编辑:我知道notepad ++,但我正在尝试用Python编写这一切,所以我的同事只需点击一个按钮(我将使用Tkinter并在完成后将其冻结为.exe)。.txt 可以是 Windows 格式,但我将(我)将相同的信息写入 .MAT 和 .ref 文件。在这些文件中,它需要 '\n' 行尾,但 Windows 仍然给我 '\r\n'。

4

1 回答 1

6

请注意,此答案特定于 Python 2 的 CSV 处理。

to_csv'w'默认以默认为文本模式的模式打开文件。在 Windows 上,文本模式转换\n\r\n. 改为以二进制模式打开文件,如果框架中有非 ASCII 文本,请指定编码。

df.to_csv('filename.txt',sep='\t',mode='wb',encoding='utf8')
于 2016-12-28T21:42:37.623 回答