然后编写以下代码,被注释掉的部分是把石墨文档里的base64图片替换为图床的URL,这里略去省得被封
import requests
from os.path import basename
import re
import os
import base64
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver import ActionChains
from urllib.parse import quote
from time import sleep
from bs4 import BeautifulSoup
import traceback
import warnings
warnings.filterwarnings('ignore')
def get_dates(content):
pattern = re.compile(r'#{1}(.*?)\n')
heads = pattern.findall(content)
dates = [h[1:] for h in heads if h[0] == ' ' and len(h) > 5]
indexes = [content.find(date+'\n')-2 for date in dates]
indexes.append(len(content))
return dates, indexes
def save_md(path, article):
with open(path, 'w+', encoding='utf8') as f:
f.write(article)
def split_and_save_md(path):
with open(path+'.md', 'r+', encoding='utf8') as f:
content = f.read()
if not os.path.exists(path):
os.mkdir(path)
dates, indexes = get_dates(content)
for i in range(len(dates)):
article_path = path+'/'+dates[i]+'.md'
if os.path.exists(article_path):
continue
article = content[indexes[i]:indexes[i+1]]
save_md(article_path, article)
序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据;
数据在程序与网络中进行传输和存储时,需要以更加方便的形式进行操作,因此需要对数据进行序列化;
对数据进行序列化的主要方法有以下两种
二进制序列化模块 pickle (python专用)
文本序列化模块 json (通用)
pandoc和pandoc-crossref提供了自动编号功能,但是没有提供中英文自动编号,因此我将中英文标题写在一行,然后利用python-docx库,对导出的docx文档做了进一步的编辑,实现中英文标题分行,且不影响自动编号。利用正则匹配,找到这个图表标题,并在Fig前面插入一个换行符号即可。在markdown将图表标题的中英文版写入到原来的地方,中英文之间使用关键字分割开,例如Fig. Table等。注意python-docx库暂时(2023-02-08 21:21:18)无法识别超链接文本。
可以直接参照官网
https://packaging.python.org/en/latest/tutorials/packaging-projects/
不过官网打包完直接上传 PYPI 了,国内网速不允许呀,即使上传成功了,你每次 pip 安装自己的包也要等好久,目前有两个解
在导出全文的时候,需要保证交叉引用不会出问题,最好再合并成一个文档。万能python实现了这个功能。这个功能不难,参考了站内【羊城迷鹿】的文章,对他的函数进行了改动,更符合我的要求。使用vscode写长markdown文档时,实时渲染会卡顿,不方便检查,拆分成每一部分比较好检查。...
我最终找到了上述问题的答案。下面的代码除了获取文件头外,还做了很多工作。它还同时加载两个并行列表数组,分别带有格式化的文件名数据(带扩展名)和纯头名称数据,这样我就可以使用这些列表在while循环中一次性填充这些html文件中的和格式化的文件名扩展名。代码现在运行良好,如下所示。在def splitHeaderstoFiles(dir, inpath):count = 1t_count = 0ou...
最近用django+Vue实现了一个博客应用,原来的hexo的博客用着也挺好,想继续留着用,于是就想将hexo生成的.md的博客内容文件解析后直接写到django的博客数据库里做同步显示。
addr = 'https://editor.csdn.net/md?articleId'
addr[-5:] = 'ceshi'
TypeError: 'str' object does not support item assignment
如上 会出现TypeError,因为str类型不支持分配,所以对于字符串的改变通常是创建一个空字符串来连接...
一个环境变量可以有多个值,值与值之间使用;[英文]隔开
path环境变量
其中保存的是路径,当我们在命令行输入一个命令,系统首先会在当前目录下寻找,如果找到,直接执行命令;如果没有找到,则会依次去path环境变
一、什么是模块结构调整
当一个脚本中有大量的配置、方法及接口时,脚本往往显得十分臃肿。为了代码更易读,可以将一个繁杂的脚本根据不同的功能放在不同的文件夹中分类管理,即模块结构调整。
二、模块结构调整实例
下面根据一个具体的例子来看一下如何拆分调整代码
1、根据正常人的思维写代码完成功能
代码需求:
(1) 注册接口:
(a) 写一个注册接口,...