2016-12-28 9 views
3

나는 간단한 작업이 될 것이라고 생각했다. 줄 끝에서 유닉스 LF 규칙을 사용하는 텍스트 파일을 만들어야합니다. 그러나 팬더 .to_csv를 사용하여이 작업을 수행하려고하면 CR LF로 끝납니다. 내 컴퓨터에 머물러 있고 파이썬을 모든 용도로 사용한다면 이것은 문제가되지 않습니다. 그렇지만 난 아니야. 이 코드는 동료가 사용할 앱의 일부가되며 파일은 자동화를 위해 제 3 자에게 전송됩니다. 다음과 같이 코드는 다음과 같습니다줄 끝 규칙을 변경하는 방법은 무엇입니까?

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

이 내 코드의 중간에 앉아 있지만, 파일을 대상 폴더에 저장 될 때 항상 CR의 LF로 다시 전환됩니다. Windows가 "helpful"인 것과 관련이 있다고 생각합니다. 나는 행운과 함께 this 유형의 솔루션을 사용하려고했습니다. 나는 또한 dos2unix 타입의 파이썬 패키지를 찾는데 어떤 행운을 빕니다. 어쨌든 '\ n'로 끝나는 줄을 쓰고 가능한 한 to_csv를 사용하여 Windows에 고착시킬 수 있습니까?

내가 파이썬 2.7 및 Windows를 사용하고 7

편집 : 나는 ++ 메모장에 대해 알고,하지만 난 내 동료가 단지 버튼을 클릭합니다 그래서 (나는 Tkinter를 사용하게 될 모든 파이썬이 쓰기 위해 노력하고 있어요 일단 내가 끝나면 이것을 .exe로 고정시키는 것). .txt는 Windows 형식 일 수 있지만 .MAT 및 .ref 파일에 동일한 정보를 쓰게됩니다. 그 파일들에서 '\ n'줄 끝이 필요하지만 Windows는 여전히 '\ r \ n'을 제공합니다.

+0

Windows에 익숙한 확장명 (.txt)이없는 파일 이름을 쓰는 것이 좋습니다. 확장명이 없을 수도 있습니다. 그것은 어쨌든 리눅스에 상관 없습니다. –

+0

@SaherAhwal : 파일 확장자는 문제와 아무런 관련이 없습니다. 문제는 파일의 데이터입니다. –

답변

5

to_csv 기본값은 텍스트 모드로 기본 설정되는 'w' 모드에서 파일을 여는 것입니다. Windows 텍스트 모드에서는 \n\r\n으로 변환합니다. 대신 이진 모드로 파일을 열고 프레임에 비 ASCII 텍스트가있는 경우 인코딩을 지정하십시오.

df.to_csv('filename.txt',sep='\t',mode='wb',encoding='utf8') 
+0

내 모든 형식의 문제가 해결되었습니다. 통찰력을 가져 주셔서 감사합니다. – Josh

+0

"wb"를 사용하면이 질문에 지정된 내 문제가 해결 될 것이라고 생각하십니까? http://stackoverflow.com/questions/41519036/problems-with-newlines-using-django-on-a-windows-server-in- 프랑스 – brfox