Python 下载.txt文件并提取文件名

Python 下载.txt文件并提取文件名,python,pandas,download,python-requests,Python,Pandas,Download,Python Requests,我正在尝试从url下载Python文件 我可以使用以下方法将其转换为数据帧: df = pd.read_csv('https://marketdata.theocc.com/position-limits?reportType=change') 但是我想得到的是文件名。 因此,如果您直接从浏览器下载该文件,则获得的文件名为“POSITIONLIMITCHANGE_20201202.txt” 有人能推荐一种在Python中实现这一点的有效方法吗? 谢谢。如果您使用的是请求库,有关该文件的信息位于

我正在尝试从url下载Python文件

我可以使用以下方法将其转换为数据帧:

df = pd.read_csv('https://marketdata.theocc.com/position-limits?reportType=change')
但是我想得到的是文件名。 因此,如果您直接从浏览器下载该文件,则获得的文件名为“POSITIONLIMITCHANGE_20201202.txt”

有人能推荐一种在Python中实现这一点的有效方法吗?
谢谢。

如果您使用的是
请求
库,有关该文件的信息位于响应标题(字典)中:

response=requests.get('https://marketdata.theocc.com/position-limits?reportType=change')
打印(response.headers['content-disposition'])
输出:

filename: POSITIONLIMITCHANGE_20201202.txt
['Equity_Symbol','   ','Start_Date','Start_Pos_Limit','End_Date','End_Pos_Limit','Action']
附件;filename=POSITIONLIMITCHANGE\u 20201202.txt

如果您使用的是
请求
库,则有关文件的信息位于响应标题(字典)中:

response=requests.get('https://marketdata.theocc.com/position-limits?reportType=change')
打印(response.headers['content-disposition'])
输出:

filename: POSITIONLIMITCHANGE_20201202.txt
['Equity_Symbol','   ','Start_Date','Start_Pos_Limit','End_Date','End_Pos_Limit','Action']
附件;filename=POSITIONLIMITCHANGE\u 20201202.txt

Python中的示例代码,用于从URL获取文件、提取文件名、保存到本地文件并导入数据帧

导入io
导入请求
进口稀土
作为pd进口熊猫
url='1〕https://marketdata.theocc.com/position-limits?reportType=change'
r=请求。获取(url)
#注意:文件名位于内容处置HTTP响应头中
s=r.headers.get('content-disposition')
#使用带有\w的regexp仅匹配文件名中的安全字符
#这将阻止接受路径或驱动器号作为名称的一部分
m=re.search(r'filename=(\w+),s)
如果m:
filename=m.group(1)
其他:
#如果未提供文件名或名称包含错误字符,请设置默认值
filename=“out.csv”
打印(“文件名:”,文件名)
text=r.text
#如果要写出提供文件名的文件
以fp形式打开(文件名为“w”):
fp.write(文本)
#使用io.StringIO()从内存中的字符串进行读取
df=pd.read\u csv(io.StringIO(文本))
打印(列表(测向列))
输出:

filename: POSITIONLIMITCHANGE_20201202.txt
['Equity_Symbol','   ','Start_Date','Start_Pos_Limit','End_Date','End_Pos_Limit','Action']

Python中的示例代码,用于从URL获取文件、提取文件名、保存到本地文件并导入到dataframe中

导入io
导入请求
进口稀土
作为pd进口熊猫
url='1〕https://marketdata.theocc.com/position-limits?reportType=change'
r=请求。获取(url)
#注意:文件名位于内容处置HTTP响应头中
s=r.headers.get('content-disposition')
#使用带有\w的regexp仅匹配文件名中的安全字符
#这将阻止接受路径或驱动器号作为名称的一部分
m=re.search(r'filename=(\w+),s)
如果m:
filename=m.group(1)
其他:
#如果未提供文件名或名称包含错误字符,请设置默认值
filename=“out.csv”
打印(“文件名:”,文件名)
text=r.text
#如果要写出提供文件名的文件
以fp形式打开(文件名为“w”):
fp.write(文本)
#使用io.StringIO()从内存中的字符串进行读取
df=pd.read\u csv(io.StringIO(文本))
打印(列表(测向列))
输出:

filename: POSITIONLIMITCHANGE_20201202.txt
['Equity_Symbol','   ','Start_Date','Start_Pos_Limit','End_Date','End_Pos_Limit','Action']