2014-02-04 5 views
-2

У меня есть CSV с 500k строк. В настоящее время мне нужно только использовать одно значение из файла, и я могу это получить. То, что я хотел бы сделать, - это когда это значение используется для удаления строки, возможно ли это?Удалить строку после ее использования

Вот мой текущий код:

import csv 
import os 

def getvin(): 
    linenumber = 1 
    with open(os.path.join(os.path.dirname(__file__), 'ITRACK6VIN.csv'), 'rb') as csvfile: 
     vinreader = csv.reader(csvfile) 
     myvins = list(vinreader) 
     text = myvins[linenumber][0] 
     return text 

print getvin() 
+3

Вы не можете удалить из середины файла, вам необходимо прочитать файл и записать его для удаления данные из него –

+2

Вы хотите взять номер вин, сделать с ним что-то, затем захватить следующий? Если это так, есть более эффективные способы итерации по списку номеров вин, а затем чтение второй строки, удаление ее, чтение новой 2-й строки, удаление ее и т. Д. ... например, для строки в vinreader: vin = line [ 0] '. Что вы пытаетесь сделать? – wflynny

+0

Я не удаляю из середины файла. Единственная строка, которая когда-либо будет использоваться, - это первая строка. Таким образом, в основном тест будет получать первую строку, использовать ее, а затем удалить первую строку. – DarthOpto

ответ

2

DarthOpto, если вы хотите перебрать числа Vin, то вы можете сделать что-то вроде

import csv 
import os 

def process_vins(): 
    vin_numbers = [] 
    with open(os.path.join(os.path.dirname(__file__), 'ITRACK6VIN.csv'), 'r') as csvfile: 
     vinreader = csv.reader(csvfile) 
     vinreader.next() # skip the first row, presumably a header 
     for row in vinreader: # iterate through each row in the file 
      current_vin = row[0] # access the first element of the row 
      current_vin = modify_vin(current_vin) # optional, do something with vin 
      vin_numbers.append(current_vin) # store vins in a list 

    return vin_numbers # return that list 

process_vins() 
+0

спасибо. – DarthOpto

0

Это звучит, как вы хотите что-то вроде этого :

import csv 
import os 

with open(os.path.join(os.path.dirname(__file__), 'ITRACK6VIN.csv'), 'rb') as csvfile: 
    vinreader = csv.reader(csvfile) 
    for line in vinreader: 
     print line[0] 
Смежные вопросы