在VS Code中使用Python读取URL文件遇OSError的解决方法
解决Python读取URL文件时的OSError错误
Python内置的open()函数仅支持读取本地文件路径,无法直接处理HTTP/HTTPS链接,直接传入URL会触发OSError,以下是两种可行的解决方法:
方法一:使用内置的urllib.request模块
无需额外安装依赖,直接用Python标准库实现:
import urllib.request import re url = 'https://py4e-data.dr-chuck.net/regex_sum_42.txt' # 发起请求并读取URL内容 with urllib.request.urlopen(url) as response: # 将字节流解码为UTF-8字符串 content = response.read().decode('utf-8') # 提取数字并求和(以你的需求为例) number_list = re.findall(r'\d+', content) total = sum(int(num) for num in number_list) print(total)
方法二:使用requests库(更简洁)
requests库提供了更友好的HTTP请求接口,需先安装:
pip install requests
实现代码:
import requests import re url = 'https://py4e-data.dr-chuck.net/regex_sum_42.txt' # 发起GET请求 response = requests.get(url) # 检查请求是否成功(若失败会抛出异常) response.raise_for_status() # 直接获取文本内容 content = response.text # 数字提取与求和逻辑 number_list = re.findall(r'\d+', content) total = sum(int(num) for num in number_list) print(total)
注意事项
- 确保本地网络可正常访问目标URL
- 若遇到SSL证书验证失败的问题,可临时添加忽略证书的参数(不推荐生产环境使用):
- 用
urllib时需导入ssl模块,添加context=ssl._create_unverified_context()到urlopen参数中 - 用
requests时添加verify=False到get参数中
- 用
内容的提问来源于stack exchange,提问作者Farrukh Israr
相关产品推荐
相关产品推荐

