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 字符串处理的更多相关文章

  1. 微信小程序组件化开发框架WePY

    wepy-CLI 安装 npm install -g wepy-cli wepy init standard my-project https://github.com/Tencent/wepy 特性 ...

  2. 微信小程序原生开发简介

    简介: 总结: 1. 逻辑层使用js引擎,视图层使用webview渲染 2. 微信小程序已经支持了绝大部分的 ES6 API 3. 可以自动补全css的兼容语法 文档:https://develope ...

  3. 微信小程序实例代码

    http://blog.csdn.net/zuoliangzhu/article/details/53862576#t1 项目结构 └─ empty-folder/ ················· ...

  4. taro 微信小程序原生作用域获取

    在 Taro 的页面和组件类中,this 指向的是 Taro页面或组件实例. 但是一般我们需要获取 Taro的页面和组件 所对应的 小程序原生页面和组件实例,这个时候我们可以通过 this.$scop ...

  5. 微信小程序--WXS---JS 代码插入

    主页要使用的JS代码放在index.js里面 例 Page({ data: { array: [1, 2, 3, 4, 5, 1, 2, 3, 4] } }) 只复制以下这段 data: { arra ...

  6. 微信小程序居中代码

    html页面: { text-align:center; } wxss页面: { width: 100%; height: 100%; display: flex; justify-content: ...

  7. Hbuilder 开发微信小程序的代码高亮

    一.点击“工具”-“选项”-搜索“文件关联” 二.点击“添加”文件类型,点击确定 三.在相关联的编辑器中点击“添加”按钮,选择CSS Editor,点击确定,重新打开 *.wxss 类型的文件即可 其 ...

  8. 微信小程序 原生框架 (分享方法封装)

    封装的分享方法 function share(o,isDebug = false ) { //路径 let url = o.url || getCurrentPages()[getCurrentPag ...

  9. 微信小程序常用代码(1)——tab切换

          <view class="font-bold tab-content"> <!-- 循环列表 --> <block wx:for=&quo ...

随机推荐

  1. 轻松加减你的NSDate值

    废话不多,先上github链接:https://github.com/codegefluester/CGFDateModifier 然后上使用方法代码: NSDate *oneWeekFromNow ...

  2. SVN的Status字段含义

    执行SVN up和svn merge等命令出现在首位置的各字母含义如下: “ ” 无修改 “A” 新增 “C” 冲突 “D” 删除 “G” 合并 “I” 忽略 “M” 改变 “R” 替换 “X” 未纳 ...

  3. 缠中说禅股票交易系统图解 z

    缠中说禅股票交易系统图解 2010-03-23 10:51 (王纯阳)缠论祖师的经典语录 1. 就在买点买,卖点卖:当然,买点并不一定是一个点,一个价位,级别越大的,可以容忍的区间越大. 2. 你要经 ...

  4. DEDECMS图片集上传图片出错302的解决办法

    无忧主机(www.51php.com)小编今天在调试dede网站的时候发现了一个问题,因为小编想在网站上增加一个图片集的栏目,于是就到后台图片集栏目去添加内容,谁知在上传图片的时候给我弹出个错误信息框 ...

  5. cordova热更新插件调试

    有更新www目录内容后,首先sencha app build,然后进入 cordova目录 运行 cordova-hcp build, 然后查看 chcp.json文件时间,然后压缩cordova目录 ...

  6. 关闭火狐定期向“http://detectportal.firefox.com/”发包

    问题:最近发现火狐总是向http://detectportal.firefox.com/发包 办法:firefox地址栏输入 about:config,然后搜索找到 network.captive-p ...

  7. TensorFlow笔记一 :测试和TFboard使用

    一 .第一个TF python3.6 import tensorflow as tf x=2 y=3 node1=tf.add(x,y,name='node1') node2=tf.multiply ...

  8. C 错误处理

    C 错误处理 C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据.在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个 ...

  9. mybatis技术文章

    http://legend2011.blog.51cto.com/3018495/1600478

  10. Express+Socket.IO 实现简易聊天室

    代码地址如下:http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: 首 ...