半自动化生成README.md文件

简介: 前言实现获取指定路径下所有文件的全路径获取文件描述信息生成readme效果总结前言最近一直在准备面试啊笔试啊什么的,写着写着代码就很多了。

前言

最近一直在准备面试啊笔试啊什么的,写着写着代码就很多了。又不能每一个代码都写成博客,要不然质量也没法保证。于是想着在GitHub上建一个repository好了。整理进去,也保证了代码的安全性,万一以后要复习了也很方便。

但是面临的一个问题就是“懒”,面对看起来蛮多的文档,一个一个的写标签似乎不是合适的选择,所以还是让程序帮我自动生成吧。

实现

实现所需步骤如下:

  • 获取给定路径下的所有文件的全路径
  • 获取每一个文件内特有的描述信息
  • 将全路径和描述信息写到readme文件中

下面就一一来实现这些步骤。

获取指定路径下所有文件的全路径

由于不知道文件夹下具体是什么情况,所以递归是一个比较贴切的选择。

def pathwalk(path='.', result=[]):
    dirlist = os.listdir(path=path)

    for item in dirlist:
        child = os.path.join(path, item)
        if os.path.isfile(child):
            result.append(child)
            # print(child)
        else:
            pathwalk(child, result)

获取文件描述信息

我个人写代码会使用IDE在新建文件的时候生成一些固定格式的内容,大致如下:

# coding: utf8

# @Author: 郭 璞
# @File: mkreadme.py                                                                 
# @Time: 2017/4/14                                   
# @Contact: 1064319632@qq.com
# @blog: http://blog.csdn.net/marksinoberg
# @Description: 将当前目录中所有的文件生成markdown文件特有的链接形式

每一个文件的Description部分都是不一样的。一般按照代码实现的功能来描述,这样即使过了好几天,也能快速的理解代码到底做了什么。我觉得这是个不错的习惯,共勉。

获取的方式也很简单,利用字符串内置的匹配即可。

def getdescription(list):
    return "".join([str(item) for item in list if "@Description:" in str(item)])

我们把文件读成list内容,然后对含有描述信息的元素提取出来即可。(因为格式比较特殊,所以很少会有不相干的元素混入,虽然也会有这个可能。)

得到具体的描述信息还需要下面的处理:

temp = getdescription(f.readlines())
temp = temp[15:]

生成readme

GitHub上的README.md文件是使用的Markdown格式,所以接下来简要的生成Markdown格式的内容,然后追加到文件中就好了。

def generate(files=[], outputpath='./readme.md'):
    info = {}
    for file in files:
        if 'readme.' in str(file):
            continue
        with open(file, 'r', encoding='utf8') as f:
            temp = getdescription(f.readlines())
            temp = temp[15:]
            info[str(file)] = temp
            f.close()
    # print(len(info), info)
    info = {k:v for k,v in info.items() if v!='' and 'readme.' not in str(k)}
    print(len(info), info)

    # 生成Markdown文件
    with open(outputpath, 'a', encoding='utf8') as f:
        # f.write('标题部分\n---')
        for key, value in info.items():
            temp = " - [{}]({})\n\n".format(value, key)
            f.write(temp)
        f.close()
    print('文件已生成!')

效果

最后来看下实现的最终效果。
半自动化readme文件生成

看起来还算是差强人意。

最后要注意的是,在上传到GitHub上的时候,目录信息需要更新一下,加个前缀啥的,这样可以再GitHub上直接点这些链接,就可以看到内容了。

总结

虽然这个脚本不算啥,但是确实是挺实用的(对我个人而言)。需要改进的地方还有很多,标题啊,缩进列表啊,表格啊,什么的都需要实现一下,这样才算是有价值,不过对我而言,目前也就需要这么点功能了。就先不折腾了。

就先到这吧,还得继续学习呢。 (^__^) 嘻嘻……

目录
相关文章
|
3月前
|
BI Python
python报表自动化系列 - 获取指定目录所有文件绝对路径
python报表自动化系列 - 获取指定目录所有文件绝对路径
27 0
|
3月前
|
Shell Linux
shell 脚本常用于自动化执行文件备份与压缩的任务
shell 脚本常用于自动化执行文件备份与压缩的任务
28 1
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
【办公自动化】使用Python批量处理Excel文件并转为csv文件
【办公自动化】使用Python批量处理Excel文件并转为csv文件
46 0
|
6月前
|
Linux iOS开发 MacOS
编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
|
2月前
|
存储 自然语言处理 数据可视化
【办公自动化】用Python按时间分割txt文件中的数据
【办公自动化】用Python按时间分割txt文件中的数据
52 1
|
2月前
|
编解码 数据可视化 数据挖掘
【办公自动化】用Python将PDF文件转存为图片
【办公自动化】用Python将PDF文件转存为图片
62 1
|
3月前
|
数据可视化 Python
Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)(上)
Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)
100 2
|
6月前
|
Cloud Native Go 开发者
使用WPS自动化转换办公文档: 将Word, PowerPoint和Excel文件转换为PDF
使用WPS自动化转换办公文档: 将Word, PowerPoint和Excel文件转换为PDF
97 0
|
2月前
|
数据安全/隐私保护 Python Windows
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
Python办公自动化【Word转换PDF、PDF读取内容、PDF合并文件、PDF拆分文件、PDF加密文件、PPT基本操作-增加幻灯片、增加内容】(六)-全面详解(学习总结---从入门到深化)
43 0
|
2月前
|
数据可视化 Python
Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)
Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)
44 0

热门文章

最新文章