【发布时间】:2018-06-25 17:13:50
【问题描述】:
我正在运行一个 Python 2.7.12 程序来处理大量数据,并且我创建的一个字符串存储了大量数据,但我注意到当我将字符串输出为CSV。
我在 Ubuntu-16.04 虚拟机上的开发服务器上运行我的脚本,可以访问 20GB 内存
为什么我的一根弦的上限是 32,758?是否有解决方法或方法来解决这个问题,以便我能够在我的字符串中存储更多?
import os
import pdfkit
import re
import requests
import urllib2
#pdfminer
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
#Opening my files
#with open("GoodData.csv", 'w') as output: this does the same thing as what I have currently
output = open("GoodData.csv", 'w')
output.write("Company|Classification|ID Number|Incorporation State/Country|Address|Link to Metadata|Link to Data|Data" + '\n')
count = 0
counter = 0
archive = open("archive.txt", 'w')
qwerty = open("ProblemLinks.txt", 'r')
for item in qwerty:
#for item in linkList:
print(" ")
print("Number of documents parsed: " + str(count))
#This loop is for testing, to go to a specific link
if counter == 0:
#So I get the links out of this
meta = metaData(item)
pdfkit.from_url(meta[0], 'out.pdf')
file = "/home/project/out.pdf"
holder = convert_pdf_to_txt(file)
if holder == None:
output.write(''.join(['|'.join([str(meta[3]), str(meta[1]), str(meta[2]), str(meta[4]), str(meta[5]), str(item).rstrip(), str(meta[0]), "No risk data found"]), '\n']))
else:
output.write(''.join(['|'.join([str(meta[3]), str(meta[1]), str(meta[2]), str(meta[4]), str(meta[5]), str(item).rstrip(), str(meta[0]), holder]), '\n']))
count = count + 1
else:
counter = counter + 1
我可以在解析完成之前打印holder,并将整个文档存储在那里。
【问题讨论】:
-
output.write(...)?您是否忘记了.flush您的文件对象,或者更好的是,当您完成时,.close()它,或者最好的方法,使用上下文管理器自动为您执行此操作? -
@juanpa.arrivillaga 我从来没有担任过
.flush的负责人,而且我有一个上下文管理器。我没有包含.close(),因为它需要解析几千个文件,然后我才需要关闭它正在写入的 CSV 文件 -
你能提供你用来写入文件的实际代码吗?
-
@juanpa.arrivillaga 我描述中的最后一行是我用来写入文件的代码,我开始认为这可能是对
.join的限制,它可能会转换字符串到 32 位字符串 -
@smci 我正在使用 python 2.7.12,并且我已经包含了更多应该提供更多上下文的代码,并且我做了
len()的事情,字符串长度始终超过 100,000人物。我将在.join上运行更多测试
标签: python string python-2.7 ubuntu-16.04 export-to-csv