一个Python脚本,旨在遍历指定文件夹(包括其子文件夹)中的Markdown文件,并查找所有以特定字符串开头的链接,然后将这些链接记录在一个本地文本文件中。以下是代码的简要介绍:

  1. 首先,指定要遍历的文件夹路径,以及将匹配到的链接保存到的输出文件的名称。确保文件夹路径和输出文件名是正确的。

  2. 创建一个空的列表 matched_links 用于存储匹配到的链接。

  3. 使用正则表达式模式 pattern 来匹配以 "https://pan.quark.cn/s/" 开头的链接。这个模式将匹配以特定字符串开头的完整链接。

  4. 使用 os.walk() 遍历文件夹及其子文件夹。对于每个Markdown文件,打开文件并读取其内容。

  5. 在Markdown文件的内容中,使用 re.findall() 函数和正则表达式模式来查找匹配的链接,将它们添加到 matched_links 列表中。

  6. 打开输出文件以便写入,然后遍历 matched_links 列表,将每个匹配到的链接写入输出文件。

  7. 最后,程序打印匹配到的链接数量以及输出文件的位置,以便你知道找到了多少个链接并可以查看输出文件。

请确保根据实际需求和文件夹路径进行适当的替换,以便程序能够正确读取文件并将链接记录到指定的输出文件中。

import os
import re

# 指定文件夹路径,确保路径是以UTF-8编码存储的
folder_path = '/path/to/your/包含中文的文件夹'
output_file = 'output_links.txt'

# 用于存储匹配到的完整链接
matched_links = []

# 定义正则表达式模式,匹配完整的链接(以 "https://pan.quark.cn/s/" 开头)
pattern = re.compile(r'https://pan\.quark\.cn/s/[\w/]+')

# 遍历文件夹及其子文件夹
for root, dirs, files in os.walk(folder_path):
    for file in files:
        if file.endswith('.md'):  # 仅处理Markdown文件
            file_path = os.path.join(root, file)
            with open(file_path, 'r', encoding='utf-8') as md_file:
                content = md_file.read()
                # 使用正则表达式查找匹配的完整链接
                links = re.findall(pattern, content)
                matched_links.extend(links)

# 将匹配到的完整链接写入本地文件
with open(output_file, 'w', encoding='utf-8') as output:
    for link in matched_links:
        output.write(link + '\n')

# 统计匹配到的链接数量
count = len(matched_links)
print(f"总共找到了 {count} 个完整链接以'https://pan.quark.cn/s/'开头。")
print(f"完整链接已保存到 {output_file}")
10-12 17:36