【问题标题】:IOError when downloading and decompressing gzip file下载和解压 gzip 文件时出现 IOError
【发布时间】:2015-09-01 11:39:29
【问题描述】:

我正在尝试下载并解压缩一个 gzip 文件,然后将生成的 tsv 格式的解压缩文件转换为更易于解析的 CSV 格式。我正在尝试从this URL 中的"Download Table" link 收集数据。我的代码如下,我使用与in this post相同的想法,但是我在with open(outFilePath, 'w') as outfile:行中得到错误IOError: [Errno 2] No such file or directory: 'file=data/irt_euryld_d.tsv'

import os
import urllib2 
import gzip
import StringIO

baseURL = "http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?"
filename = "D:\Sidney\irt_euryld_d.tsv.gz" #Edited after heinst's comment below
outFilePath = filename[:-3]

response = urllib2.urlopen(baseURL + filename)
compressedFile = StringIO.StringIO()
compressedFile.write(response.read())

compressedFile.seek(0)

decompressedFile = gzip.GzipFile(fileobj=compressedFile, mode='rb') 

with open(outFilePath, 'w') as outfile:
    outfile.write(decompressedFile.read())

#Now have to deal with tsv file
import csv

with open(outFilePath,'rb') as tsvin, open('ECB.csv', 'wb') as csvout:
    tsvin = csv.reader(tsvin, delimiter='\t')
    csvout = csv.writer(csvout) #Converting output into CSV Format

谢谢

【问题讨论】:

  • 为什么你的路径前面有file=?那是目录名的一部分吗?
  • @heinst 对不起。我会纠正的。但是,错误仍然存​​在。
  • 能否请您用更新后的代码更新问题,以便我查看?
  • 我知道问题所在,您需要数据文件夹的完整路径。所以/Users/path/to/data/irt_euryld_d.tsv.gz
  • 它必须是一个有效的路径。无论文件irt_euryld_d.tsv.gz 在哪里,您都必须提供它的完整路径。例如,如果我的桌面上有irt_euryld_d.tsv.gz,我的路径将是/Users/heinst/Desktop/irt_euryld_d.tsv.gz。我会将该路径设置为filename

标签: python


【解决方案1】:

您设置filename 的路径不是写入文件的有效路径。因此,您必须将filename = "data/irt_euryld_d.tsv.gz" 更改为您希望irt_euryld_d.tsv.gz 文件所在位置的有效路径。例如,如果我想要桌面上的irt_euryld_d.tsv.gz 文件,我将设置filename = "/Users/heinst/Desktop/data/irt_euryld_d.tsv.gz" 的值。由于这是一个有效的路径,python 不会再给你No such file or directory 错误了。

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2018-03-09
    • 2013-02-27
    相关资源
    最近更新 更多