大文本文件到csv,无法打开文本文件

时间:2015-09-27 13:59:35

标签: python csv

我试图从https://snap.stanford.edu/data/转换这个3 GB的文本文件 进入csv文件。所有数据的结构如下:

  • name:something
  • 年龄:某事
  • 性别:某事

这使得它成为一个包含数百万行的相当大的文本文件。 我曾尝试编写一个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()

我不确定是不是因为文档很大,因为一个规则的记事本程序无法打开它。

预先感谢! : - )

1 个答案:

答案 0 :(得分:2)

f = open("movies.txt", "wb")行中,您打开文件进行书写,从而删除其所有内容。稍后,您尝试从同一个文件中读取。如果更改输出文件名,它可能正常工作。 (我不会下载3.1 GB进行测试。;))

相关问题