Post tagged: Python

CSV 转 SQL:又一个轮子

这种轮子多了去了。这次的轮子功能有:

  • 自动判别类型。你数据里有 NULL 值,某列前几行都是数字后面出现文本,严格区分大小整数和浮点数,这些我们都考虑了。
  • 生成 CREATE TABLE。不对自己改。
  • 非标准 CSV。这种文件太多了,得给每种格式来个选项。
  • 几何类型。识别 Well Known Text,通用的地理图形记法。
  • 没有外部依赖。为啥识别个数字类型还要装 Pandas?

https://github.com/The-Orizon/nlputils/blob/master/csvsql.py

用 FUSE 挂载 HTTP 文件目录

Apache、nginx 等服务器软件都有生成文件目录的功能。这类目录通常只考虑到人类的可读性,给机读带来很大困难。之前有解析目录列表的一些实现 [1] [2],但不能覆盖大多数情况。为了之前挖的坑(实现自动获取软件更新信息) [3],我实现了一个能解析大部分文件目录的程序「htmllisting-parser」。

其能解析用 <pre><table><ul> 的常见文件目录,包括 Apache、nginx、lighttpd、darkhttpd 和 Python http.server 等服务器的默认样式,生成文件名、修改时间、大小、描述的列表。解析的基本思想就是模式匹配,对 <pre> 就先找链接,再在每一栏找修改时间和文件大小;<table> 先找表头;<ul> 列举链接就可以了。程序写的有点面条,一堆黑科技,有空再整理和模块化。

以这个解析器为基础,就能写出较为高效的 FUSE 文件系统 …

Python 中文数字转换

都什么年代了连个好的 Python 数字转中文的程序都找不到。所以只能重新发明轮子了。

这个程序按照四位一组的划分,倒序拼写数字,准确处理补零、十几、小数的问题,支持大写、繁体、〇、两的写法,最多整数部分可达 48 位。由于浮点数型限制,长整数和小数应传入 int, Decimal 或字符串型。缺点只有不支持浮点数中的科学记数法(可以自己分段传入)。Python 2 只需将所有字符串改成 unicode 即可使用。

授权:WTFPL 或 Unlicense 或 CC0,即公有领域授权,想干嘛干嘛。Gist 链接

import itertools

def num2chinese(num, big=False, simp=True, o=False, twoalt …

重要文件备份脚本

一个用于实现文件筛选并备份的Python脚本。有如下功能:

  • 全局单文件大小限制(筛出了过大的音视频等文件)
  • 个别扩展名的扩大文件大小限制(避免筛选出稍大的图片、压缩包等)
  • 时间限制,增量备份
  • 仅更新大小不同的文件
  • 支持多语言文件名
  • 可跨平台
  • 有直观的文本输出
  • 脚本可扩展,可稍加修改实现可选的全局总大小限制、扩展名限制等

注意使用时要保存为UTF-8编码,以免出编码问题。

from sys import stdout
import os
import shutil
import time

#highprext = [".doc",".docx",".rtf",".xls","xlsx",".ppt",".pps",".pptx"] #可选的限制文件类型
otherext = [".pdf",".gif",".jpg",".png",".tif",".bmp",".zip",".tar",".tgz",".gz","7z …