2013-08-27 3 views
0

Я хотел бы удалить (удалить) определенные строки в файле csv. Но есть некоторые условия.удаление определенной строки в файле csv, python

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

Я могу создать новый файл, но я должен удалить несколько строк из старого файла, а затем отфильтровать файл, а затем отправить его вперед. Проблема в том, что, becuse, я НЕ ДОЛЖЕН переписывать строки, которые будут оставаться в связи с проблемами с кодировкой – djpiky

ответ

2

Это невозможно. Вы хотите удалить содержимое из файла, не изменяя его. Это взаимоисключающие.

+0

расскажите об этом боссу OP;) – philshem

+0

Каков его номер, я был бы рад дать ему вызов;) – McKay

0

Вы можете попробовать использовать интерфейс mmap для замены байтов строки пробелами.

0

Вы можете создать старую временную метку, используя 'touch -t'. Для получения дополнительной информации см. Справочную страницу «touch».

touch -t 200510071138 old.dat 

Просто убедитесь, что вы записали исходную временную метку!

Чтобы удалить строки, вы можете использовать «grep -v», который печатает все, кроме условий поиска.

grep -v baddata old.dat > new.dat 

Чтобы изменить с помощью python, нам понадобятся некоторые конкретные детали файла.

Смежные вопросы