Python编写解决Clion解决方案的脚本

Python编写解决Clion解决方案的脚本

这段时间宅在家躲避疫情, 仔细思考了一下, 发现即便有了这样的一个教程, 很多朋友依然会因为嫌麻烦或者看不懂而不去结局这个小问题, 于是乎, 我便写了一个Python脚本, 可以自动生成Clino中的CMakeLists.txt和自定义生成*.cpp文件

首先,了解需要的指令内容

在编写这个脚本前, 我们首先需要了解一下必要的Python创建文件夹以及创建、读写文件的基本指令, 这里只会列出本文需要的指令内容

os.mkdir()	# 创建单级目录

open()		# 打开文件, 如果文件不存在, 则创建文件
			# 这里注意第二个参数不同的含义, 本文使用了"w+"、"w"和"a"
 			# "w+": 以读写的形式打开
 			# "w": 以写的形式打开
       		# "a": 以追加(添加内容)的形式打开
  
.write()	# 将内容写入文件中
.close()	# 关闭文件, 虽然一般不会有很大问题, 不过这个最好养成习惯, 每次都写上去

了解完指令内容, 正式进入正题!

import os


def main():

    print("

注意!!!本脚本暂不支持直接创建C++项目,使用前提是在Clion中已经创建一个总项目,需要在其中新建子项目或子文件!切记!!!")

    num = input("
1. 新建子项目	2. 在子项目内新建.cpp文件:")

    # ############ 这个框里不是必须的 ############ #

    # 我写这个主要是为了和手动创建的文件内容完全一致
    usrname = input("请输入您的姓名:")

    date = input("请输入日期,格式为(年/月/日):")

    # ######################################### #

    if num == '1':

        # 以下为创建新文件,并在其中写入基本内容

        # 将文件目录拷贝过来(绝对路径)
        path = input("请输入文件的目录:")

        # 自定义文件夹名称
        son_folder_name = input("请输入新建文件夹名称:")

        # 这里创建文件夹
        os.mkdir(f"{path}/{son_folder_name}")

        # 创建并打开子目录下的CMakeLists.txt, 在其中写入必要内容
        temp2 = open(f"{path}/{son_folder_name}/CMakeLists.txt", "a")

        temp2.write("include_directories(.)
")

        temp2.close()

        # 从这里开始循环,新建多个不同的自定义文件, 可以自定义数量
        amount = int(input("请输入创建文件数量:"))

        while amount:
            amount = amount - 1

            file_name = input("请输入新建文件名称:")

            f = open(f"{path}/{son_folder_name}/{file_name}.cpp", "a")

            f.write(
              f"//
// Created by {usrname} on {date}.
//

#include <iostream>
using namespace std;"
                "

int main() {

}")
            f.close()

            # 向子项目中的CMakeLists.txt输入配置信息
            cmLists = open(f"{path}/{son_folder_name}/CMakeLists.txt", "a")

            cmLists.write(f"
add_executable({file_name} {file_name}.cpp)")

            print("已经对子目录内CMakeLists.txt进行更改")

        # 向项目根目录中的CMakeLists.txt输入配置信息
        CMLists = open(f"{path}/CMakeLists.txt", "a")

        CMLists.write(f"
ADD_SUBDIRECTORY({son_folder_name})")

        CMLists.close()

        print("已经对项目总CMakeLists.txt进行更改")

# ###################################################################### #

    elif num == '2':    # 单纯在目录下创建.cpp文件(即子项目中的子文件)

        # 将文件目录拷贝过来(绝对路径)
        path = input("请输入新建文件的路径:")

        amount = int(input("请输入创建文件数量:"))

        while amount:

            amount = amount - 1

            file_name = input("请输入新建文件名称:")

            f = open(f"{path}/{file_name}.cpp", "a")

            f.write(
                f"//
// Created by {usrname} on {date}.
//

#include <iostream>
using namespace std;"
                "

int main() {

}")

            f.close()

            print(f"已经成功创建{path}/{file_name}.cpp文件")

            g = open(f"{path}/CMakeLists.txt", "a")

            g.write(f"
add_executable({file_name} {file_name}.cpp)")


if __name__ == "__main__":
    main()


然后运行试试:

首先在控制台输入: (注意! 这里需要先cd到脚本文件的位置, 再执行这个操作, 我是因为本身文件就在项目文件夹里, 就可以直接执行)
在这里插入图片描述

然后根据提示运行即可

(当然, Clion内部也可以直接进行新建文件并自动reload的操作, 而且Clion自动会将所有的子文件名直接放到add_exacutable()里面, 相对于我这个更省资源, 这更省空间, 所以新建.cpp这个功能其实并不是那么有用哈哈哈, 本人首次写脚本, 没有考虑需求或者其他的因素, 就当是提升自己, 使用的熟练一些罢了)

大功告成!!!

原文地址:https://www.cnblogs.com/MYspegaleBlog/p/12620653.html