如何通过 url python 下载 xlsx 文件的第一行
How to download first line of xlsx file via url python
我曾经使用 requests
库通过 url 加载单行:
import requests
def get_line(url):
resp = requests.get(url, stream=True)
for line in resp.iter_lines(decode_unicode=True):
yield line
line = get_line(url)
print(next(line))
一个文本文件完美加载。但是如果我想加载 .xlsx,结果看起来像不可打印的符号:
PK [symbols] [Content_Types].xml [symbols]
有没有办法加载单行单元格?
您不能只阅读原始 HTTP
响应并寻找特定的 Excel 数据。为了以正确的格式获取 xlsx
文件内容,您需要使用适当的库。
常用库之一是xlrd
,你可以用pip
安装它:
sudo pip3 install xlrd
示例:
import requests
import xlrd
example_url = 'http://www.excel-easy.com/examples/excel-files/fibonacci-sequence.xlsx'
r = requests.get(example_url) # make an HTTP request
workbook = xlrd.open_workbook(file_contents=r.content) # open workbook
worksheet = workbook.sheet_by_index(0) # get first sheet
first_row = worksheet.row(0) # you can iterate over rows of a worksheet as well
print(first_row) # list of cells
xlrd documentation
如果您希望能够逐行读取数据 - 您应该切换到更简单的数据表示格式,例如 .csv 或简单的文本文件。
我曾经使用 requests
库通过 url 加载单行:
import requests
def get_line(url):
resp = requests.get(url, stream=True)
for line in resp.iter_lines(decode_unicode=True):
yield line
line = get_line(url)
print(next(line))
一个文本文件完美加载。但是如果我想加载 .xlsx,结果看起来像不可打印的符号:
PK [symbols] [Content_Types].xml [symbols]
有没有办法加载单行单元格?
您不能只阅读原始 HTTP
响应并寻找特定的 Excel 数据。为了以正确的格式获取 xlsx
文件内容,您需要使用适当的库。
常用库之一是xlrd
,你可以用pip
安装它:
sudo pip3 install xlrd
示例:
import requests
import xlrd
example_url = 'http://www.excel-easy.com/examples/excel-files/fibonacci-sequence.xlsx'
r = requests.get(example_url) # make an HTTP request
workbook = xlrd.open_workbook(file_contents=r.content) # open workbook
worksheet = workbook.sheet_by_index(0) # get first sheet
first_row = worksheet.row(0) # you can iterate over rows of a worksheet as well
print(first_row) # list of cells
xlrd documentation
如果您希望能够逐行读取数据 - 您应该切换到更简单的数据表示格式,例如 .csv 或简单的文本文件。