2015-09-27 6 views
0

Я пытаюсь преобразовать этот 3,1-гигабайтный текстовый файл с https://snap.stanford.edu/data/ в файл csv. Все данные структурированы как:Большой текстовый файл в csv, не может открыть текстовый файл

  • имя: что-то
  • возраст: что-то
  • пол: что-то

, что делает его довольно большой текстовый файл с некоторыми миллионов строк. Я попытался написать скрипт py для его преобразования, но по какой-то причине он не будет читать строки в моем для каждого цикла.

Вот код:

import csv 


def trycast(x): 
    try: 
     return float(x) 
    except: 
     try: 
      return int(x) 
     except: 
      return x 

cols = ['product_productId', 'review_userId', 'review_profileName', 'review_helpfulness', 'review_score', 'review_time', 'review_summary', 'review_text'] 

f = open("movies.txt", "wb") 
w = csv.writer(f) 
w.writerow(cols) 


doc = {} 

with open('movies.txt') as infile: 
    for line in infile: 
     line = line.strip() 
     if line=="": 
      w.writerow([doc.get(col) for col in cols]) 
      doc = {} 
     else: 
      idx = line.find(":") 
      key, value = tuple([line[:idx], line[idx+1:]]) 
      key = key.strip().replace("/", "_").lower() 
      value = value.strip() 
      doc[key] = trycast(value) 
    f.close() 

Я не уверен, если это происходит потому, что документ является большим, потому что regulare программа блокнота не сможет его открыть.

Спасибо заранее! :-)

ответ

2

В строке f = open("movies.txt", "wb") вы открываете файл для записи и тем самым удаляете все содержимое. Позже вы пытаетесь прочитать из того же файла. Вероятно, он работает нормально, если вы измените имя выходного файла. (Я не буду загружать 3,1 ГБ, чтобы проверить его.;))

+0

Вы гений Спасибо! #awesomePersonAboveThisComment – McBoman

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