mih*_*asa 4 python xlrd python-requests
我是 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
Run Code Online (Sandbox Code Playgroud)
xlrd.open_workbook可以接受文件数据的字符串而不是文件名。您的代码可以传递 XLS 的内容,而不是创建文件并传递其名称。
尝试这个:
# UNTESTED
resp = requests.get(dls)
workbook = xlrd.open_workbook(file_contents=resp.content)
Run Code Online (Sandbox Code Playgroud)