微信小程序 原生代码 转wepy 字符串处理
import glob
import os cwd = os.getcwd()
sep = os.sep
target = cwd + sep + 'pages' + sep + '*' + sep + '*'
filelist = glob.glob(target)
pageNameSet = set([i.split('\\')[1] for i in glob.glob('./pages/*/*')])
pageStrDicList = {}
for i in pageNameSet:
pageStrDicList[i] = {'wxml': '', 'wxss': '', 'json': '', 'js': ''} '''
Page页面字符串结构
<style lang="less">.wxss全部复制写入</style>
<template>.wxml全部复制写入</template>
<script>
import wepy from 'wepy'
.js Page({之前部分全部复制写入
export default class Index extends wepy.page {
config = {
.json全部复制写入
}
data = {.js data:的对象}
methods = { .js Page({ })中除去data:{}外的全部 }
}
</script> ''' for i in filelist:
for pageName in pageNameSet:
try:
if pageName in i:
if i.endswith('wxml'):
with open(i, 'r', encoding='utf-8') as fr:
pageStrDicList[pageName]['wxml'] = fr.read()
elif i.endswith('wxss'):
with open(i, 'r', encoding='utf-8') as fr:
pageStrDicList[pageName]['wxss'] = fr.read()
elif i.endswith('json'):
with open(i, 'r', encoding='utf-8') as fr:
pageStrDicList[pageName]['json'] = fr.read()
elif i.endswith('js'):
with open(i, 'r', encoding='utf-8') as fr:
pageStrDicList[pageName]['js'] = fr.read()
break
except Exception as e:
print(i)
print(e) for pageName in pageStrDicList:
try:
r = cwd + sep + 'res' + sep + pageName + '.wpy'
i = pageStrDicList[pageName]
s = '<style lang="less">\n' + i['wxss'] + '</style>\n'
s += '<template>\n' + i['wxml'] + '</template>\n'
s += '''
<script>
import wepy from 'wepy'
'''
l = i['js'].split('Page({')
s += l[0]
s += '''
export default class Index extends wepy.page {
config =
'''
s += i['json']
s += '\n'
if 'data:' in l[1]:
# js代码必须被微信ide格式化,这样保证data:存在且第一个满足要求
index_0 = l[1].index('data:') index_1 = l[1][index_0:].index(' },')
s += '\ndata = ' + l[1][index_0:][5:index_1] + '}\n' s += '\nmethods = {'
s += l[1][index_0 + 5 + (index_1 - 5) + len(' },'):].replace(': function', '').rstrip(' ').rstrip(
'\n').rstrip('})')
s += '}\n}'
else:
s += '\nmethods = {'
s += l[1][len('Page({') + 1:].replace(': function', '').rstrip(' ').rstrip(
'\n').rstrip('})')
s += '}\n}'
with open(r, 'w', encoding='utf-8') as fw:
fw.write(s)
except Exception as e:
print(e)
print(pageName)
微信小程序 原生代码 转wepy 字符串处理的更多相关文章
- 微信小程序组件化开发框架WePY
		wepy-CLI 安装 npm install -g wepy-cli wepy init standard my-project https://github.com/Tencent/wepy 特性 ... 
- 微信小程序原生开发简介
		简介: 总结: 1. 逻辑层使用js引擎,视图层使用webview渲染 2. 微信小程序已经支持了绝大部分的 ES6 API 3. 可以自动补全css的兼容语法 文档:https://develope ... 
- 微信小程序实例代码
		http://blog.csdn.net/zuoliangzhu/article/details/53862576#t1 项目结构 └─ empty-folder/ ················· ... 
- taro 微信小程序原生作用域获取
		在 Taro 的页面和组件类中,this 指向的是 Taro页面或组件实例. 但是一般我们需要获取 Taro的页面和组件 所对应的 小程序原生页面和组件实例,这个时候我们可以通过 this.$scop ... 
- 微信小程序--WXS---JS 代码插入
		主页要使用的JS代码放在index.js里面 例 Page({ data: { array: [1, 2, 3, 4, 5, 1, 2, 3, 4] } }) 只复制以下这段 data: { arra ... 
- 微信小程序居中代码
		html页面: { text-align:center; } wxss页面: { width: 100%; height: 100%; display: flex; justify-content: ... 
- Hbuilder 开发微信小程序的代码高亮
		一.点击“工具”-“选项”-搜索“文件关联” 二.点击“添加”文件类型,点击确定 三.在相关联的编辑器中点击“添加”按钮,选择CSS Editor,点击确定,重新打开 *.wxss 类型的文件即可 其 ... 
- 微信小程序 原生框架 (分享方法封装)
		封装的分享方法 function share(o,isDebug = false ) { //路径 let url = o.url || getCurrentPages()[getCurrentPag ... 
- 微信小程序常用代码(1)——tab切换
		<view class="font-bold tab-content"> <!-- 循环列表 --> <block wx:for=&quo ... 
随机推荐
- 关于js延迟加载(异步操作)的方式
			一.概述 最近重新开始学习js,在第一章的一个小节里写到了“脚本调用策略”,书上写的这部分不多,但是发现在我之前的(笔)面试中,问到的频率还是比较高的.自己一直习惯于直接把所有js文件写在head里, ... 
- linux svn co 重新迁出
			在linux环境下,使用svn co (即svn checkout) 报svn: Authorization failed错误, 使用svn co svn://localhost/temp.cc /d ... 
- ASIHTTPRequest, request sent twice
			´ve just started using ASIHTTPRequest for iOs and I have a small issue with it. All requests are sen ... 
- mac 配置sencha touch环境
			1 安装 java 2 安装 node js 为使用npm作准备 3 用npm命令安装 cordova npm install -g cordova 
- mootools客户端框架
			mootools客户端框架 学习:http://www.chinamootools.com/ 官网:https://mootools.net/ 下载地址: https://github.com/moo ... 
- Java数据结构-线性表之静态链表
			静态链表的定义: 节点由一个一维数组和一个指针域组成,数组用来存放数据元素,而指针域里面的指针(又称游标)用来指向下一个节点的数组下标. 这种链表称之为静态链表. 链表中的数组第一个和最后一个位置须要 ... 
- 最短路算法之 Dijkstra算法
			Dijkstra算法 Dijkstra算法是典型最短路算法,用于计算一个节点到其它全部节点的最短路径. 主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最 ... 
- HTML5 Canvas 绘制加拿大枫叶旗
			这段代码比较简单,中间的枫叶使用了图片,因为没找到画法: <!DOCTYPE html> <html lang="utf-8"> <meta http ... 
- OpenStack 安装教程(使用Fuel )
			OpenStack Fuel 安装教程 1介绍 OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基 ... 
- Vue 内容分发slot
			1.概述 内容分发:混合父组件的内容与子组件自己的模板. 2.单个插槽 当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标签本身. 最初在 ... 
