欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用python實現(xiàn)模板生成腳本-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關如何使用python實現(xiàn)模板生成腳本的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,瓦房店企業(yè)網(wǎng)站建設,瓦房店品牌網(wǎng)站建設,網(wǎng)站定制,瓦房店網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,瓦房店網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

最近項目需要,針對主項目提取一個小的基礎版本,供于在新建項目時使用,所以就有這個python模板生成腳本,其作用如下:

1、通過配置文件來控制模板中的數(shù)據(jù)、格式化的過濾條件

2、執(zhí)行后會把目錄下所有的文件都會執(zhí)行一篇

#!/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:
    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
 
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:
    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()
 
    # 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" : [],
   "regex" : []
  },
  "include" : {                  ##進行模板格式化的文件
   "file_path" : [],
   "file_name" : []
  }
 },
 "store":{
  "dir_path" : "e:/test"             ##輸出路徑主目錄     
  "data" : {
  "project_name":"NewJAVA",            ##模板數(shù)據(jù)
  "project_prefix":"newjava"           ##模板數(shù)據(jù)
 }
}

執(zhí)行操作:

1、安裝了python環(huán)境

2、雙擊python腳本

3、然后在執(zhí)行下README中的步驟

readme:

README
=============

腳本使用
-------------
1. 打開config.json文件
2. 配置相關信息[輸出目錄、項目名稱、項目前綴]
3. 執(zhí)行make_project.py腳本
4. 查看輸出目錄

感謝各位的閱讀!關于“如何使用python實現(xiàn)模板生成腳本”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

本文題目:如何使用python實現(xiàn)模板生成腳本-創(chuàng)新互聯(lián)
URL標題:http://chinadenli.net/article10/cepedo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站面包屑導航、微信小程序搜索引擎優(yōu)化、ChatGPT關鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
日韩一级毛一欧美一级乱| 五月婷婷缴情七月丁香| 国产成人亚洲欧美二区综| 妻子的新妈妈中文字幕| 深夜福利欲求不满的人妻| 精品亚洲一区二区三区w竹菊| 成人免费在线视频大香蕉| 日韩中文无线码在线视频 | 国产一级不卡视频在线观看| 人妻露脸一区二区三区| 亚洲欧美日韩中文字幕二欧美| 欧美国产日韩变态另类在线看| 精品一区二区三区乱码中文| 精产国品一二三区麻豆| 国产免费成人激情视频| 日韩欧美好看的剧情片免费 | 亚洲一区二区三区福利视频| 一区二区日韩欧美精品| 国产精品一区二区视频大全| 国产精品欧美一区两区| 91爽人人爽人人插人人爽| 精品高清美女精品国产区| 国产成人国产精品国产三级| 99在线视频精品免费播放| 九九热这里只有精品视频| 国产精品人妻熟女毛片av久 | 亚洲欧美日本成人在线| 国产av精品高清一区二区三区| 亚洲精品福利视频你懂的| 国产精品一区日韩欧美| 成人日韩在线播放视频| 欧美日韩乱码一区二区三区| 有坂深雪中文字幕亚洲中文| 日本午夜免费观看视频| 99久久精品国产麻豆| 久久这里只有精品中文字幕| 尹人大香蕉一级片免费看| 激情偷拍一区二区三区视频| 国产成人精品视频一二区| 日韩精品视频免费观看| 日韩精品日韩激情日韩综合|