2019年11月

换了一台机器继续写处理doc文档的python,调试的时候才发现缺少 python_docx。

pip3 install python_docx

爆了一堆错,才发现之前编译安装python3 也没有装 setuptools 和 pip3 (不记得为什么和当时是怎么装的了)

pip装完之后发现直接安装还是报错。饶了点弯路,以下备忘怎样手动安装。

到这个地方下载需要的库的手动安装文件(.whl)

http://www.lfd.uci.edu/~gohlke/pythonlibs

搜索到 python_docx‑0.8.10‑py2.py3‑none‑any.whl 下载到本地

运行

pip install your/path/of/python_docx‑0.8.10‑py2.py3‑none‑any.whl

依赖lxml自动下载也失败,继续回上面的链接找 lxml 同样安装
版本众多,留意刚才安装python_docx时显示的相应版本

D:\>pip install d:\Download\python_docx-0.8.10-py2.py3-none-any.whl
Processing d:\download\python_docx-0.8.10-py2.py3-none-any.whl
Collecting lxml>=2.3.2 (from python-docx==0.8.10)
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)",)': /simple/lxml/
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)",)': /packages/0c/94/68a055d7ea8801aa6f2a1159e1bb257afe2afb5f3f026e5b0b7e15cf28b4/lxml-4.4.2-cp35-cp35m-win_amd64.whl

找对应的版本(python3.5.x win 64位) 下载 lxml-4.4.2-cp35-cp35m-win_amd64.whl

再次顺序安装,搞定

pip install your/path/of/lxml-4.4.2-cp35-cp35m-win_amd64.whl
pip install your/path/of/python_docx‑0.8.10‑py2.py3‑none‑any.whl

再运行,正确调用 python_docx了。

lux上线了近一年的带pos功能的在线钱包(webwallet) https://lux.poswallet.io/ ,近期将改为收费服务。
费用是每月每账户扣除等值 $1.5 USD 的LUX。

考虑到目前的币价以及即将到来的收益减半,如果继续使用web钱包存款少于2000 lux 很可能入不敷出,越存越少。

对不愿意支付fee的用户,从webwallet上删除自己的私钥和地址即可,0余额的账户在30日后会从在线系统上销户。

官方提供了指引如何把webwallet转移到自己的钱包。
https://docs.luxcore.io/docs/web-wallet-migrate-to-qt

以下备忘如何在ubuntu16 安装和部署lux钱包。
(只介绍 lux-cli 命令行模式, qt就不介绍了,和win版一致的)




- 阅读剩余部分 -

之前备忘了php 的,也把js的写一下吧,懒得费脑子写连记住都觉得浪费能源。

//验证手机号合法性
function valid_phone(phone){
    var flag = false;
    var myreg = /^(1[3-9]{1}[0-9]{9})$/;
    if (phone == '') {
        console.log("手机号码不能为空");
        //errmsg = "手机号码不能为空!";
    } else if (phone.length != 11) {
        console.log("请输入11位手机号码!");
        //errmsg = "请输入11位手机号码!";
    } else if (!myreg.test(phone)) {
        console.log("请输入有效的手机号码!");
        //errmsg = "请输入有效的手机号码!";
    } else {
        flag = true;
    }
    return flag;
}

errmsg 和 console.log 输出都是没用的,只是以防需要额外的交互。

Okay长话短说。实际上有点标题党,因为最终的解决方啊并非直接用纯PHP实现了旧版word文件的处理。
由于时间已经不早了,为了争取续命睡眠的时间,我会在项目做的差不多之后在回顾之时补完这篇日志。

需求背景

由于甲方的一些客观条件约束。有一大批原始素材内容是旧版word格式(.doc) 。希望能直接从固定格式的文档内提取和整理内容导入数据库。
服务端环境为linux

备选方案

  1. PHP自身的扩展 php_com_dotnet.dll
  2. PHP的第三方插件PHPWord
  3. PHP调用服务器的第三方程序antiword
  4. 和上一个解决方案类似,后端用Python 跑一个服务监听待处理word文档队列,异步处理。

在可行性研究阶段目前已经否决了前3种方案,正在用第四种方法迂回实现需求。



- 阅读剩余部分 -