我认为这是一项简单的任务。我需要创建一个在行尾使用unix LF约定的文本文件。但是,当我尝试使用pandas .to_csv完成此操作时,我最终得到了CR LF。如果我留在我的机器上并且如果我使用python进行所有操作,这不会是一个问题。但我不是。该代码将成为同事将使用的应用程序的一部分,并且该文件将被发送给第三方以进行自动化。代码如下:
df.to_csv("filename.txt", sep = '\t',line_terminator = '\n')
这位于我的代码中间,但当文件保存在目标文件夹中时,它总是切换回CR LF。我认为这可能与Windows“helpful”有关。我试图使用this类型的解决方案,但没有运气。我也没有运气找到Python的dos2unix类型包。无论如何,我可以编写以'\ n'结尾的行并将其粘贴在Windows中(如果可能,使用to_csv)?
我使用的是Python 2.7和Windows 7.
编辑:我知道notepad ++,但我想用Python编写这一切,所以我的同事只需要点击一个按钮(我将使用Tkinter并在完成后将其冻结为.exe)。 .txt可以是Windows格式的,但我将(同)将相同的信息写入.MAT和.ref文件。在那些文件中它需要'\ n'行结束,但Windows仍然给我'\ r \ n'。答案 0 :(得分:5)
to_csv
默认以'w'
模式打开文件,默认为文本模式。在Windows文本模式下,将\n
翻译为\r\n
。改为以二进制模式打开文件,如果框架中有非ASCII文本,请指定编码。
df.to_csv('filename.txt',sep='\t',mode='wb',encoding='utf8')