2013-08-27 7 views
0

csv 파일에서 특정 행을 제거 (삭제)하고 싶습니다. 그러나 몇 가지 조건이 있습니다.csv 파일의 특정 행을 제거, 파이썬

1.) File can't be buffered in memmory, becuse of it's size (1GB+) 
2.) File MUST NOT be "touched" (rewriting file) 

내 직업은 다른 행을 변경하지 않고, CSV 파일의 일부 행을 삭제 그냥 - 인코딩의 becuse, 매우 중요한 파일 것을 인쇄 회사에 필터링 된 csv 파일을 전송.

해결책이 있습니까?

감사합니다.

+0

왜 데이터베이스를 사용하지 않습니까? – dare

+0

새 파일을 만든 다음 이전 파일을 만질 수 있습니까? – philshem

+0

새 파일을 만들 수 있지만 이전 파일에서 일부 행을 삭제하고 필터링 된 파일을 보내야합니다. 문제는, 왜냐하면 나는 수정 된 이전 파일을 보내야 만 인코딩 – djpiky

답변

2

할 수 없습니다. 내용을 수정하지 않고 파일에서 내용을 삭제하려고합니다. 그것들은 상호 배타적입니다.

+0

가 OP의 상사에게 알리십시오;) – philshem

+0

그의 전화 번호는 무엇입니까, 그에게 전화를 기쁘게 생각합니다;) – McKay

0

mmap 인터페이스를 사용하여 행 바이트를 공백 문자로 대체 할 수 있습니다.

0

'touch -t'를 사용하여 이전 타임 스탬프를 만들 수 있습니다. 자세한 내용은 '터치'매뉴얼 페이지를 참조하십시오.

touch -t 200510071138 old.dat 

원본 타임 스탬프를 적어 두십시오.

행을 제거하려면 'grep -v'를 사용하십시오.이 명령은 검색어를 제외한 모든 내용을 인쇄합니다.

grep -v baddata old.dat > new.dat 

파이썬으로 수정하려면 파일에 대한 세부 정보가 필요합니다.

관련 문제