python将远端图片保存到本地(笔记)

这段代码演示了如何使用Python的requests库从指定URL下载图片,并确保目标目录存在。首先,它获取图片的内容,然后检查图片路径的目录是否存在,如果不存在则创建。最后,将图片内容写入本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
import os.path
img_url="images/upload/image/0_25-TINTO-1.jpg"
picUrl = 'http://www.baidu.com/'+img_url

# 获取图片内容
res = requests.get(picUrl).content
# 获取图片路径目录
getPicDir = os.path.dirname(img_url)
# 判断上传的目录是否存在
if not os.path.isdir(getPicDir):
    os.makedirs(getPicDir)   

if os.path.exists(img_url):
     print('目标文件已存在%s' % (img_url))
else:
     print('正在创建文件%s' % (img_url))
     with open(img_url, 'wb') as fp:
         fp.write(res)
### 如何在 Typora 中设置本地图片保存并上传至 优快云 为了实现 Typora 的本地图片保存并将笔记顺利上传到 优快云,可以按照以下方法完成配置。 #### 设置 Typora 图片存储路径 Typora 支持自定义图片存储位置。可以通过调整其设置,使图片保存在指定的本地文件夹中。 具体操作如下: 1. 打开 Typora 软件,在菜单栏选择 `文件` -> `偏好设置...` 或者快捷键 `Ctrl+,` (Windows/Linux) / `Command+,` (Mac)。 2. 切换到左侧选项卡中的 `图片` 部分。 3. 将 “图片插入方式” 设为 `链接` 并勾选 `复制图片时自动保存`[^3]。 4. 在下方的 `图片路径` 输入框中填目标文件夹路径(例如项目根目录下的 `images` 文件夹),或者点击右侧的小文件图标手动选择路径。 这样每次粘贴或拖入图片都会被保存到设定好的本地文件夹里,并生成对应的相对路径引用。 #### 处理 优快云 不支持本地图片的问题 尽管上述步骤解决了图片本地化存储的需求,但由于 优快云 只能解析网络上的公开 URL 地址而无法访问用户的个人计算机磁盘数据,因此单纯依赖本地路径仍然会导致文章内的图像加载失败。为此需要额外采取措施将这些静态资源迁移到云端服务器上供外部调用: ##### 方法一:利用图床工具转换成公网链接 目前市面上存在多种免费且易用型在线图床服务平台可以帮助我们轻松达成这一目的。以下是推荐流程: 1. 下载安装任意一款主流桌面端应用版本(如 sm.ms、upyun 等),注册账号登录授权; 2. 把之前提到过的那个专门用来存放截图素材的子目录整个打包压缩后一次性导入该软件客户端界面等待批量处理完毕; 3. 导出最终形成的 markdown 文档前记得替换掉原有的 file:/// 开头部分字符串成为新的 https:// 域名形式地址即可[^5]。 ##### 方法二:启用 GitHub Pages 提供托管功能 对于熟悉 Git 版本控制系统的朋友来说还可以考虑借助开源社区力量自行搭建属于自己的个性化站点作为长期固定的镜像源使用。主要优势在于稳定性高而且完全免费用途广泛不限于仅限于此场景适用范围更广一些。大致思路概括如下几点注意事项: - 创建一个新的仓库命名为 username.github.io (这里的username代表实际用户名) - 使用命令行克隆远程库下来然后初始化必要的结构框架布局等内容 - 编辑 .gitignore 排除不必要的临时垃圾项保持整洁干净 - 定期提交更新增量改动推送回原点确保最新状态始终可用[^4] 最后一步就是在编辑器内部修改默认行为让新产生的每张插图都指向这个定制化的 web 访问入口而不是原始设备私密区域了。 ```python import os from pathlib import Path def convert_local_images_to_web_links(md_file_path, base_url): """ 替换 Markdown 文件中的本地图片路径为 Web 链接 参数: md_file_path (str): 待处理的 Markdown 文件路径 base_url (str): 图片所在的公共基础网址 返回值: None: 修改后的结果直接覆盖原有文件 """ path_obj = Path(md_file_path) with open(path_obj, 'r', encoding='utf8') as f_in: content = f_in.read() # 查找所有匹配 ![](file:/...) 样式的表达式 local_image_pattern = r'!\[\]\((file:.*)\)' matches = re.findall(local_image_pattern, content) for match in set(matches): # 对唯一的结果逐一迭代 rel_path = match.replace('file:', '') abs_path = os.path.abspath(rel_path) if not os.path.exists(abs_path): continue new_link = '![]({}/{})'.format(base_url, os.path.basename(rel_path)) content = content.replace(match, new_link) with open(path_obj, 'w', encoding='utf8') as f_out: f_out.write(content) ``` 以上脚本可用于自动化地将 Markdown 文件里的本地图片路径转化为基于特定主机的服务地址表示法以便后续跨平台共享传播更加便捷高效[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值