# -*- coding:utf-8 -*-

import xlrd
import xlsxwriter
import os
import sys
#读取目录 遍历文件 读取每一个文件的第一个sheet 写入目标文件 放在一个sheet里



def open_xls(file):
    try:
        fh = xlrd.open_workbook(file)
        return fh
    except Exception as e:
        print("打开文件错误:" + e)


# 根据excel名以及第几个标签信息就可以得到具体标签的内容
def get_file_value(filename, sheetnum):
    rvalue = []
    fh = open_xls(filename)
    sheet = fh.sheets()[sheetnum]
    row_num = sheet.nrows
    for rownum in range(0, row_num):
        rvalue.append(sheet.row_values(rownum))
    return rvalue

end_xls = "L:\\excel\\final_excel.xlsx"

path = "L:\\excel\\".decode('utf-8').encode('GB2312')
filelist = os.listdir(path)

# 定义一个目标excel
endxls = xlsxwriter.Workbook(end_xls)
end_xls_sheet = endxls.add_worksheet('aa')
num = 1
for files in filelist:
    fh = open_xls(path + files)
    sheet = fh.sheets()[0]
    row_num = sheet.nrows
    for rownum in range(1, row_num):
        #print sheet.row_values(rownum)
        end_xls_sheet.write_row('A' + str(num), sheet.row_values(rownum))
        num += 1
endxls.close()

# coding=utf-8
import re
import os
import sys
def rename():
    path = "E:\\Website\\test\\".decode('utf-8').encode('GB2312')
    filelist = os.listdir(path)
    for files in filelist:
        olddir=os.path.join(path,files)
        if os.path.isdir(olddir):
            continue
        filename=os.path.splitext(files)[0]    
        filetype=os.path.splitext(files)[1]
        #替换文件中的数字==还有a
        news = re.sub('\d*==','',filename)
        news = re.sub('\d*=','',news)
        nn = news.replace("a","")
        print(os.path.join(path,nn+filetype))
        newdir = os.path.join(path,nn+filetype.lower())
        #重名 判断
        if os.path.isfile(newdir):
            print(newdir+" is have")
            continue
        os.rename(olddir,newdir)
rename()

Source Map
前端工程化的一个重要部分就是就是源码转换,一方面压缩体积,另一方面合并文件。当然还有可能是为了转换Typescript、ES6+或其他代码。但通常转换完的代码难以阅读和调试。Source Map就是为了解决这个问题而出现的。

找到一个神器
安装
Chrome web store
安装地址https://chrome.google.com/webstore/detail/source-detecotor/aioimldmpakibclgckpdfpfkadbflfkn?hl=zh-CN&gl=CN

源码安装

  1. 下载安装

git clone https://github.com/SunHuawei/SourceDetector.git
cd SourceDetector
npm install
bower install
gulp

打开Chrome设置-扩展程序
点击"加载已解压的扩展程序..."
选择path/to/source-detector/dist目录

之后你在浏览任何网页时,该插件将自动检测是否有.map文件。其会自动按网站分组显示源码文件,并可点击下载全部或部分源码文件。

tp5组合复杂的AND OR SQL语句

                if (!empty($spec_name)) {
                    $spec_where_item[] = array(
                        'like',
                        '%' . $spec_name . '%'
                    );
                }

                //重置
                $spec_where1 = [];
                foreach ($spec_value_info as $spec)
                {
                    $spec_value_name = $spec["spec_value_name"];

                    if (!empty($spec_value_name)) {
                        $spec_where1[] = array(
                            'like',
                            '%"spec_value_name":"' . $spec_value_name . '"%'
                        );
                    }
                }
                //这些条件用or
                $spec_where2 = [$spec_where1,'or'];
                $spec_where[] = [$spec_where_item,$spec_where2,'and'];

侧边商品筛选器的开发
基于filterMore组件,筛选器数据的json生成,解决选择后的参数URL拼接 ,后端参数获取,选中值页面重载后的加载等难题
基于模板标签的二级子站的显示

微信编辑器提供微信公众号文章排版和内容编辑的在线工具,样式丰富,支持秒刷、收藏样式和颜色、图片素材编辑、图片水印、一键排版等功能,轻松编辑微信公众号图文。是公众号编辑必备的工具,很多平台都需要加入VIP才能使用一些更好的资源,今天刚好研究微信编辑器的原理与开发,通过看JS代码发现很多平台的VIP判断很容易绕过。以下是方法,都需要在chrome的开发者工具的cosole面板中运行.

96editor

$('#user_vip').data('vip',3) 

135editor

vip_user = true

其它平台不断丰富中