前言

在使用 Typora 的时候,我将图片的保存路径设置为了如下所示:

这样设置是为了更方便的管理笔记中的图片,但图片文件夹却也显示在了侧边栏中,随着笔记增多,我的侧边栏越来越乱...

难道要忍气吞声吗?那必不可能,在经过长时间的寻找,终于有了解决办法!

解决方法

参考这篇文章「md之Typora如何将图片集中保存到统一的文件夹内,并使用相对路径 」我发现,当文件夹的名称以 . 开头时是不会显示在侧边栏中的。于是将图片保存路径更改为: ./.${filename}.assets

修改了几个已有的文件夹,发现确实有效:

但更改设置只能应用于新笔记,对于已有的笔记没有作用。看着自己的一大堆笔记,我知道手动操作肯定是不行的,于是就去写了一个小的 python 程序来自动操作。

代码

代码奉上:

import os
import re def modify_content(path, md_name):
try:
# 临时文件名
md_name_temp = 'temp_' + md_name os.chdir(path) # 打开md文件,fr用来读取,fw用来更改后写入生成新文件
with open(md_name, 'r', encoding='utf8') as fr, \
open(md_name_temp, 'w', encoding='utf8') as fw:
# 读取文件内容
data = fr.read() # 替换文件内容
title = (md_name.split('.'))[0]
data = re.sub(title, '.' + title, data) # 写入文件并关闭资源
fw.write(data)
fr.close()
fw.close() # 删除原文件并用新文件替换
os.remove(md_name)
os.rename(md_name_temp, md_name)
print(f'{md_name} done...') except FileNotFoundError as e:
print(e) if __name__ == '__main__':
# 要处理的目标路径
work_dir = r'D:\Lenovo\Desktop\test' try:
for root, dirs, files in os.walk(work_dir):
# 跳过.开头的隐藏文件夹和.assets文件夹
if re.search('\.', root): continue print('========================================')
print(f'Path: {root}') count = 0
for dir in dirs:
match_img_foler = re.search('\.assets$', dir) os.chdir(root)
if match_img_foler:
# 匹配到.assets文件夹,修改文件夹名
new_name = '.' + dir
os.rename(dir, new_name) print(f'{dir} done...') # 修改同名md文件内容
md_name = re.sub('assets', 'md', dir)
modify_content(root, md_name) count += 1 print(f'{count} Item Done!')
except Exception as e:
print(e)

设置工作路径 work_dir ,程序会自动遍历所有子路径下的 assets 文件夹和 md 笔记并进行修改操作:

个人编码水平较为浅薄,程序仅作为一个思路进行分享,如有不足和改进之处还请指出。

提醒:数据无价!执行程序前请 提前做好备份 ,重要文档请谨慎操作。

参考

md之Typora如何将图片集中保存到统一的文件夹内,并使用相对路径

用 Python 批量替换 md 文件内容

Typora 隐藏侧边栏图片文件夹的更多相关文章

  1. Mac下隐藏或显示文件/文件夹

    命令行操作 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write com.apple.fi ...

  2. windows 10隐藏各种文件夹

    1.windows键+R打开运行,或者Ctrl+Alt+Del键调出任务管理器--文件--运行新的任务,然后出入"regedit"打开注册表: 2.按目录找到:[-HKEY_CLA ...

  3. 隐藏win10中“此电脑”里的6个子文件夹

    删除点击此电脑后6个子文件夹 运行regedit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Fold ...

  4. shell 批量压缩指定文件夹及子文件夹内图片

    shell 批量压缩指定文件夹及子文件夹内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此须要编写一个程序,查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压 ...

  5. 如何删除Windows10操作系统资源管理器中的下载、图片、音乐、文档、视频、桌面、3D对象这7个文件夹

    通过注册表删除,步骤如下: 1.按下win+R,输入regedit,打开注册表 2.找到位置:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Cur ...

  6. spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置

    spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ ...

  7. 链接ftp,把文件或图片上传到ftp指定的文件夹中

    /******************************************************************** *  * * Filename : .java * Auth ...

  8. matlab遍历文件夹下所有图片和遍历所有子文件夹下图片

    做图像处理实验,经常需要遍历当前文件下所有图片.matlab当然很早就考虑了这个问题,库函数dir就是完成这个工作的.函数返回的是一个存放所有目录下文件信息的结构体,通过遍历结构体就可以达到访问所有文 ...

  9. 20160223 - Windows 10 的文件资源管理器下出现重复文件夹的解决办法

    现象: 安装 OneDrive 从 Windows 7.8.8.1 升级来的 Windows 10 的电脑,可能会出现文件资源管理器左侧面板中出现重复的文件夹. 通常有:视频.图片.文档.下载.音频. ...

  10. Mac系统Finder访问资源库文件夹

    Mac在Lion版本之后,默认隐藏了“资源库”文件夹,如果有时我们又需要访问它,该怎么办呢? 方法一 打开“Finder”,打开“前往”菜单时按住“Option”键. 方法二 我们也可设置Finder ...

随机推荐

  1. 用C#语言实现记事本

    一.实验内容: 二.记事本所需功能: (1)记事本程序具有文件的新建.打开.保存功能: (2)文字的复制.粘贴.删除功能:字体类型.格式的设置功能: (3)查看日期时间等功能,并且用户可三根据需要显示 ...

  2. Ubuntu 22.04 安装 VMWare 16.2.3 后无法启动

    异常日志: 2022-06-13T03:49:56.019Z In(05) host-29676 In file included from /tmp/modconfig-XR2GVI/vmmon-o ...

  3. pytest之运行环境

    简介 pytest是Python最流程化的单元测试框架,它具有允许直接使用assert进行断言,而不需要使用self.assert*:可以自动寻找单测文件.类和函数,还可支持执行部分用例:Modula ...

  4. String的Equals()和==比较

    String的Equals()和==比较 常量池(Constant Pool):指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据.JVM虚拟机为每个被装载的类型维护一个常量池.常量 ...

  5. python pandas dataframe excel xlwings docx 常用简单函数方法汇总

    # -*- coding: UTF-8 -*-import pandas as pdimport numpy as npimport datetimeimport osimport sysimport ...

  6. vue项目 - 自定义数字输入指令 | 限制自定义小数位输入

    1.在main.js中直接加入代码: import Vue from 'vue' Vue.directive("input-limit", { bind(el, binding) ...

  7. 使用yarn启用项目,报错无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系 统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

    这是由于新版win10 安装的时候会出现: 解决 搜索powershell,右键以管理员身份运行 2.打开之后,执行命令set-ExecutionPolicy RemoteSigned更改 Power ...

  8. 痞子衡嵌入式:RISC-V指令集架构MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是RISC-V指令集架构微控制器相关知识. RISC-V指令集最早要追溯到2010年,是加州大学伯克利分校的一个研究团队的项目,目标是设 ...

  9. 一款基于js/jquery标签拖拽排序小组件

    这是一个基于jQuery写的拖拽小组件,写了大概两三天,刚好可以在前端方面练练手.拖拽原理是使用绝对定位+鼠标元素位置实现. GitHub地址:https://water1996.github.io/ ...

  10. Django笔记十之values_list指定字段取值及distinct去重处理

    这篇笔记将介绍 reverse.distinct.values 和 values_list 的用法. 本篇笔记目录如下: reverse() values() values_list() distin ...