微信小程序 原生代码 转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 ...
随机推荐
- 网站优化—mysql explain执行计划
explain执行计划 简介MySQL调优: 先发现问题(慢查询,profile) 对于使用索引和没有使用索引,了解到索引可以快速去查找数据 了解什么是索引(索引是排好序的快速查找的数据结构) 索引的 ...
- Jmeter(五十)_性能测试模拟真实场景下的用户操作
概述 我们在做性能测试的时候,不同的视角看到的结果都不一样. 例如响应时间 用户通过客户端向服务端发出请求的时间为: T1服务端接收到请求,处理该请求的时间为:T2服务端返回数据给客户端时间为: T3 ...
- TCO 2015 Round 2A DIV1
ModModMod 傻逼数论 题意: 这是一道卖萌的题..给你一个取模序列$m$,令$f(x)=(\cdots (x\ mod\ m[0])\ mod m[1])\mod m[2]\cdots $,问 ...
- luogu P2949 [USACO09OPEN]工作调度Work Scheduling
题目描述 Farmer John has so very many jobs to do! In order to run the farm efficiently, he must make mon ...
- Spring IOC(转载)
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...
- 【iOS】Frame和Bounds的区别以及获取绝对坐标的办法
终于搞清楚了,UIView中的frame获取的是相对于所在ParentView的坐标,而bounds则是指UIView本身的坐标.比如下图(假设A是屏幕): View B的Frame坐标是指相对于Vi ...
- Linux系统救援模式应用:单用户模式找回密码
利用Linux系统救援模式找回密码 方法一: 开机时手要快按任意键,因为默认时间5s grub菜单,只有一个内核,没什么好上下选的,按e键.升级了系统或安装了Xen虚拟化后,就会有多个显示. 接下来显 ...
- thinkphp5 中使用postgresql 缺少函数 table_msg
参考解决办法 在postgresql 中执行命令 插入函数 https://blog.csdn.net/sinat_35767703/article/details/76070236?utm_sour ...
- linux 系统时间硬件时间同步
1.设置系统时间:date-s 21/05/2016 date -s 08:21:21 2.系统时间同步到硬件时间: clock --systohc
- 谷歌浏览器插件-html页面js事件查看器
谷歌浏览器插件-html页面js事件查看器 1.下载 下载地址:http://files.cnblogs.com/files/graceup/VisualEvent.zip 解压得到文件:Visual ...