Python:如何在不保存文件的情况下处理来自 Web 的 excel 数据

标签 python python-requests xlrd

我是 python 的新手,在处理 python 中的 excel 操作时遇到了问题。

这是我的情况:我正在使用请求从 Web 服务器获取 .xls 文件。之后我使用 xlrd 将内容保存在 excel 文件中。我只对该文件的一个值感兴趣,并且我从不同的 url 地址检索了数千个文件。

我想知道如何以其他方式处理我从请求中获得的内容,而不是创建一个新文件。

此外,我已经包含了我的代码以及关于如何改进它的评论。此外,它不起作用,因为我正在尝试将新内容保存在已创建的 excel 文件中(但我无法弄清楚如何删除该文件的内容以使我的代码正常工作(即使它效率不高)) .

import requests
import xlrd
d={}
for year in string_of_years:
    for month in string_of_months:  
        dls=" http://.../name_year_month.xls"
        resp = requests.get(dls)
        output = open('temp.xls', 'wb')
        output.write(resp.content)
        output.close()
        workbook = xlrd.open_workbook('temp.xls')
        worksheet = workbook.sheet_by_name(mysheet_name)
        num_rows = worksheet.nrows
        for k in range(num_rows):
            if condition I'm looking for:
                w={key_year_month:worksheet.cell_value(k,0)}
                dic.update(w)
                break

最佳答案

xlrd.open_workbook 可以接受文件数据的字符串而不是文件名。您的代码可以传递 XLS 的内容,而不是创建文件并传递其名称。

试试这个:

    # UNTESTED
    resp = requests.get(dls)
    workbook = xlrd.open_workbook(file_contents=resp.content)

引用:xlrd.open_workbook documentation

关于Python:如何在不保存文件的情况下处理来自 Web 的 excel 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30878197/

相关文章:

python - 通过将元素添加到特殊位置来扩展列表

python - 使用 Python 请求验证 Yelp Fusion API

Python-requests - 下载进度条

从列表 json.decoder.JSONDecodeError : Expecting value: line 1 column 1 (char 0) 循环时出现 python 错误

Python xlrd.书籍 : how to close the files?

python - %exception 被 SWIG(python) 包装器忽略了吗?

python : overflow error long int too large to convert to float

Python 请求 .iter_content() 生成器生成二进制数据?

python - 在 python 中打开和读取 excel .xlsx 文件

python - xlrd 模块可以更改文件属性吗?