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这个功能其实并不是那么有用哈哈哈, 本人首次写脚本, 没有考虑需求或者其他的因素, 就当是提升自己, 使用的熟练一些罢了)