使用来自 Python 的请求动态命名下载的文件时出现错误 22

Getting Error 22 for dynamically naming a downloaded files using request from Python

所以我尝试在 jupyter 中自动执行每日下载并尝试为其命名并添加下载日期和时间,但我收到此错误 22:

OSError: [Errno 22] Invalid argument: 'C:\Users\Emilio\Downloads\BonosMX_2021-09-29_01:26:40_PM.xlsx'

这就是我正在尝试的:

import requests
from openpyxl import load_workbook
from datetime import datetime
from pathlib import Path

url='www.xyz.com/file.xyz'
r = requests.get(url, allow_redirects=True)
print(r.headers.get('content-type'))
fechaDes = datetime.now().strftime("_%Y-%m-%d_%I:%M:%S_%p")
path = r"C:\Users\Emilio\Downloads\BonosMX" + fechaDes + ".xlsx"
open(path, 'wb').write(r.content)

感谢您的帮助!

Windows 对可以放入路径的内容非常挑剔。试试这个:

fechaDes = datetime.now().strftime("_%Y-%m-%d_%I-%M-%S_%p")

一般坚持使用 _- 作为分隔符...请注意 windows 对路径长度有限制很容易被击中。

“OS错误”中的“OS”提示我时间格式使用的是“:”,它不能用于 Windows 上的文件名,所以我只是替换了它们带有“-”,现在可以使用了!