当前位置: 主页 > Python语言

python 脚本引用目录-shell脚本与python脚本

发布时间:2023-02-13 14:15   浏览次数:次   作者:佚名

Python 如何实现模板生成脚本的详细说明

更新时间:2019-01-30 10:24:06 作者:自由如风

今天小编就给大家分享一下Python实现模板生成脚本的方法的详细介绍,有很好的参考价值,希望对大家有所帮助。下面就跟着小编一起来看看吧最近,项目

需要为主项目提取一个小的基础版本,以便在创建新项目时使用,所以有这个python模板来生成一个脚本python 脚本引用目录python 脚本引用目录,它执行以下操作:

1.通过配置文件控制模板中的数据和格式化的过滤条件

2.执行后,将执行目录中的所有文件

#!/usr/bin/python
#encoding: utf-8
 
import json
import codecs
import os
 
def get_files(root_path):
  for dir in os.walk(root_path):
    if dir[2]:
      for nf in dir[2]:
        yield os.path.join(dir[0], nf)
 
def exclude_filter(exclude, nfile):
  files_path = exclude.get('file_path')
  files_name = exclude.get('file_name')
  base_name = os.path.basename(nfile)
  exts_name = exclude.get('ext_name')
  base_ext_name = base_name.rsplit(".", 1)[1]
  if files_path:

shell脚本与python脚本_python 脚本引用目录_python 引用

for npath in files_path: if npath==nfile: return True elif files_name: for name in files_name: print name, base_name if name==base_name: return True elif exts_name: for name in exts_name: print name, base_ext_name if name==base_ext_name: return True def include_filter(include, nfile): files_path = include.get('file_path') files_name = include.get('file_name') base_name = os.path.basename(nfile) if files_path: for npath in files_path: if npath==nfile: return True elif files_name: for name in files_name: if name==base_name: return True

python 引用_shell脚本与python脚本_python 脚本引用目录

def main(): # read config config = {} with codecs.open("config.json","rb","UTF-8") as f: config = json.loads(f.read()) if not config: return template = config.get("template") if template and template.get('path'): root_path = template.get('path') if not os.path.exists(root_path): print "source path not exist" return root_path = os.path.abspath(root_path) old_path = os.path.dirname(root_path) else: return exclude = template.get('exclude') include = template.get('include') store = config.get("store") if not store or not os.path.exists(store.get('dir_path', '')): return data = config.get("data") if not data:

shell脚本与python脚本_python 引用_python 脚本引用目录

return if not os.path.exists(root_path): print 'root path not exists' return if os.path.isfile(root_path): files = [root_path] else: base_name = os.path.basename(root_path) store_root_path = os.path.join(store.get('dir_path'), base_name) if not os.path.exists(store_root_path): os.mkdir(store_root_path) files = get_files(root_path) for nfile in files: print nfile try: with codecs.open(nfile, "rb", "UTF-8") as f: s = f.read() if not exclude_filter(exclude, nfile) or include_filter(include, nfile): s = s % data except: with codecs.open(nfile, "rb") as f: s = f.read()

python 脚本引用目录_shell脚本与python脚本_python 引用

# save to file fn = nfile.replace(old_path, store.get('dir_path')) fn_dir = os.path.dirname(fn) if not os.path.exists(fn_dir): os.makedirs(fn_dir) try: with codecs.open(fn, "wb", "UTF-8") as f: f.write(s) f.flush() except: with codecs.open(fn, "wb") as f: f.write(s) f.flush() if __name__ == '__main__': main()

轮廓:

{
 "template": {
  "path" : "D:/tunicorn-web/framework-template",  ##模板文件主目录
  "exclude" : {                  ##不进行模板格式化的文件
   "file_path" : [],  
   "file_name" : ["config.json", "make_project.py"], 
   "ext_name" : ["css", "woff2"],
   "file_type" : [],

python 引用_shell脚本与python脚本_python 脚本引用目录

"regex" : [] }, "include" : { ##进行模板格式化的文件 "file_path" : [], "file_name" : [] } }, "store":{ "dir_path" : "e:/test" ##输出路径主目录 "data" : { "project_name":"NewJAVA", ##模板数据 "project_prefix":"newjava" ##模板数据 } }

执行操作:

1. 安装蟒蛇环境

2. 双击 Python 脚本

3.然后执行下一个自述文件中的步骤

自述文件:

自述文件=============

脚本用法

-------------

1. 打开 config.json 文件

2. 配置相关信息[输出目录、项目名称、项目前缀]。

3. 执行make_project.py脚本

4. 查看输出目录

以上Python实现模板生成脚本方法的详细说明,都是小编分享给大家的内容,希望能给大家一个参考,也希望大家支持脚本之家。