通过 python 脚本快速创建通用文件

518 阅读1分钟

脚本编写

项目是通过 flutter 开发 App,所以脚本主要用于创建 dart 文件,其他项目大同小异。创建 create_dart.py(名字可以随便取)文件,具体如下

import os
import sys

# 判断参数
if len(sys.argv) == 1:
    print('请输入要创建的文件名')
    exit()

index = 0
while index < len(sys.argv)-1:
    index += 1

    # 类名
    page_name_list = sys.argv[index].split('_')
    class_name = ''
    for item in page_name_list:
        class_name = '{0}{1}'.format(class_name, item.capitalize())
    page_class_name = '{0}Page'.format(class_name)

    # 文件名
    page_name = '{0}_page.dart'.format(sys.argv[index])

    # 获取脚本运行路径
    current_path = os.getcwd()
    # 文件路径
    page_name_path = os.path.join(current_path, page_name)

    # 创建文件并写入内容
    with open(page_name_path, "w") as file:
        file.write("import 'package:flutter/material.dart';\n")
        file.write("\n")
        file.write('class %s extends StatelessWidget {\n' % page_class_name)
        file.write("  %s({Key? key}) : super(key: key);\n" % page_class_name)
        file.write("\n")
        file.write("  @override\n")
        file.write("  Widget build(BuildContext context) {\n")
        file.write("    return Scaffold(\n")
        file.write("      backgroundColor: Colors.white,\n")
        file.write("      appBar: _appBar(),\n")
        file.write("      body: _body(),\n")
        file.write("    );\n")
        file.write("  }\n")
        file.write("\n")
        file.write("  AppBar _appBar() {\n")
        file.write("    return ThemeAppBar.builder(title: '');\n")
        file.write("  }\n")
        file.write("\n")
        file.write("  Widget _body() {\n")
        file.write("    return Container();\n")
        file.write("  }\n")
        file.write("}\n")
        file.close()

exit()

自定义终端命令(mac)

  • 打开终端
  • 输入 vi ~/.zshrc,或者直接open ~/.zshrc
  • 写入 alias create_dart='python3 create_dart.py'create_dart.py是脚本所在文件,按照路径填写即可。
  • 退出保存
  • 运行 ``create_dart```
  • 如果报 zsh: permission denied: create_dart.py错误,运行chmod -R 755 create_dart.py 即可

alias create_dart='python3 create_dart.py' 的意思白话文描述一下,就是注册一个命令create_dart,以后在终端输入create_dart相当于运行python3 create_dart.py

运行

  • 打开终端,运行 create_dart test

  • 运行结果,在运行命令所在目录下会创建 test_page.dart 文件,文件内容如下

      import 'package:flutter/material.dart';
    
      class TestPage extends StatelessWidget {
        TestPage({Key? key}) : super(key: key);
    
        @override
        Widget build(BuildContext context) {
          return Scaffold(
            backgroundColor: Colors.white,
            appBar: _appBar(),
            body: _body(),
          );
        }
    
        AppBar _appBar() {
          return ThemeAppBar.builder(title: '');
        }
    
        Widget _body() {
          return Container();
        }
      }