路径对于StringIO太长,但对于文本太长

2024-10-03 23:17:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用StringIO而不是文本文件将数据复制到pandas数据框中。有些文件将非常大,我不希望有大的文本文件,然后删除。使用StringIO似乎是一个更好的解决方案

如果我这样做的话,数据帧的创建就没有问题了

import pandas as pd
import requests

indIndustryDataURL='https://download.bls.gov/pub/time.series/pc/pc.industry'  #0.04MB

# put data from web into a requests.get() object
indIndustryData=requests.get(indIndustryDataURL, allow_redirects=True)

# Store column names and data rows from requests.get() in separate list objects
industryDataColNames=indIndustryData.text.split('\r\n')[0].split('\t')
industryDataRowData=indIndustryData.text.split('\r\n')[1:-1]


# Print row data into a text file ready for import pandas like csv
with open('industryDataRowData.txt','w') as f:
          f.writelines('%s\n' % row for row in industryDataRowData )

#This works fine
df1=pd.read_csv('industryDataRowData.txt',sep='\t', names=industryDataColNames)

但是当我尝试StringIO()时,下面的代码来自同一个jupyter笔记本,由于路径太长的错误,它不允许我使用

import io
io = io.StringIO()
start_time = datetime.now()
io.writelines(industryDataRowData)
io.seek(0)

df2=pd.read_csv(io.getvalue(),sep='\t', names=industryDataColNames)

ValueError: stat: path too long for Windows

有什么建议吗


Tags: 数据textioimportpandasdatagetnames