如何用urllib读取本地TXT文件?遇unknown url type: c错误求解
问题分析与解决办法
你遇到的这个错误很典型——urllib.request.urlopen()是用来访问网络URL的,不是读取本地文件的!你把本地文件路径传给它,它会把C:\当成一种未知的URL协议(只有http/https这类协议是它能识别的),所以抛出了unknown url type: c的错误。
正确的实现思路分两步:
- 用Python内置的
open()函数读取本地的urlsDow.txt文件,提取里面的每一行URL。 - 对每一行的URL(记得清理掉换行符和空格),再用
urlopen()发起网络请求。
修正后的代码示例:
import urllib.request # 第一步:读取本地文件中的URL列表 file_path = r"C:\Users\diese\OneDrive\Documentos\GitHub\MCPP_diego_ramirez\Proyectof\urlsDow.txt" with open(file_path, 'r') as file: # 过滤空行并去掉每行的换行符 urls = [line.strip() for line in file if line.strip()] # 第二步:遍历每个URL并发起请求 for url in urls: try: response = urllib.request.urlopen(url) # 可根据需求处理响应,比如打印状态码或内容 print(f"访问成功:{url},状态码:{response.getcode()}") # 若需读取响应内容:content = response.read() except urllib.error.URLError as e: print(f"访问失败:{url},错误信息:{e}")
额外优化提示:
- 用
with open()的方式能自动关闭文件,避免资源泄漏。 - 加入
try-except块可以单独捕获单个URL的访问错误,不会因为某一个URL出问题就中断整个程序。 - 过滤空行的操作(
if line.strip())能避免尝试访问空字符串导致的额外错误。
内容的提问来源于stack exchange,提问作者Sebastián Ramírez
相关产品推荐
相关产品推荐

