【我有一个大胆的想法】用perl搞个脚本来自动gen_python哈哈哈哈哈

前言

哈哈这次不是什么新想法,而是我一直这么搞的,perl来做了gen_perl/gen_python/gen_sh,然后我的上个虚拟机挂了后就遗失了,导致我最近非常抓狂

弱小可怜又无助是什么梗 弱小可怜又无助表情包

幸好我最近虽然有点失忆但是大面上还记得呢。

生成文件

最后要生成的文件就是这样的可执行文件:

#!/usr/bin/python

###############################################################
## Name       : python_script.py
## Author     : xiaotu
## Time       : 2021-05-15 11:29:08
## Description:
## 
## 
###############################################################

import sys
import os
import re
import argparse
import math

def input_args_proc():
    parser = argparse.ArgumentParser(description="argparse info")
    parser.add_argument('-o', action='store_true', default=False, help='open this script')
    result = parser.parse_args()
    if result.o == True:
        os.system("gvim %s" % __file__)
        sys.exit(0)

def main():
    print("%s is working" % __file__)
    input_args_proc()

if __name__ == "__main__":
    main()

自动设置了input_args_input(),是为了使用-o指令自动打开文件,详见:

Linux命令行直接打开全局路径下的python脚本

内置了print("%s is working" % __file__)这句话指示目前是哪个脚本在执行,我实在是被用错脚本路径坑怕了。

关键处理

获取作者、创建时间、待创建脚本名称:

#!/usr/bin/perl -w

my $user = `whoami`;
my $date = `date "+%Y-%m-%d %H:%M:%S"`;
my $name = "python_script.py";
my @line;
$name = $ARGV[0] if $#ARGV >= 0;

打印这一大堆东西:

push(@line, "#!/usr/bin/python\n");
push(@line, "\n");
push(@line, "###############################################################\n");
push(@line, "## Name       : $name\n");
push(@line, "## Author     : $user");
push(@line, "## Time       : $date");
push(@line, "## Description:\n");
push(@line, "## \n");
push(@line, "## \n");
push(@line, "###############################################################\n");
push(@line, "\n");

push(@line, "import sys\n");
push(@line, "import os\n");
push(@line, "import re\n");
push(@line, "import argparse\n");
push(@line, "import math\n");
push(@line, "\n");

push(@line, "def input_args_proc():\n");
push(@line, "    parser = argparse.ArgumentParser(description=\"argparse info\")\n");
push(@line, "    parser.add_argument('-o', action='store_true', default=False, help='open this script')\n");
push(@line, "    result = parser.parse_args()\n");
push(@line, "    if result.o == True:\n");
push(@line, "        os.system(\"gvim %s\" % __file__)\n");
push(@line, "        sys.exit(0)\n");
push(@line, "\n");

push(@line, "def main():\n");
push(@line, "    print(\"%s is working\" % __file__)\n");
push(@line, "    input_args_proc()\n");
push(@line, "\n");

push(@line, "if __name__ == \"__main__\":\n");
push(@line, "    main()\n");

创建文件,写入,并设置为可执行文件:

open FILE, "> $name";
print FILE @line;
close FILE;
system("chmod a+x  $name");

执行一下

[xiaotu@xiaotu-eda ~/my_work/glb_env]$gen_python new_st
[xiaotu@xiaotu-eda ~/my_work/glb_env]$new_st
.//new_st is working

这不是完美么?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼德兰的喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值