Python – 存储二进制数据及序列化

本文是一系列介绍Python数据存储的文章之一。其他文章是:

上周我们已经看到了如何将数据存储到纯文本文件里,这样无论是任何编辑器或者其他程序都可以读取。我们还了解到,如果使用逗号来分割数据,那么文件需要遵循一个标准,然后就可以自动兼容其他应用程序,比如电子表格。这种方法的主要限制之一,就是如果数据本身就含有逗号的,那么文件就不再具有可读性。

本文将进一步讨论数据的编码。这将是我们能够理解为什么您使用Python所保存的内容,能够为普通的文本编辑器或者Web浏览器读取。我们还将了解到,如果我们能以正确的方式对数据进行编码,那么就可以节省磁盘上的空间。最后,我们还将仔细的讲解保存纯文本文件和二进制数据文件之间的区别。

继续阅读

Python – 在文件中存储数据

原文链接

这是一系列涉及python数据存储的文章中的第一篇。其他文章见:

存储二进制数据及序列化

使用数据库存储数据

在Python中使用HDF5文件

在大多数python程序中,将数据存储下来以备后续使用都是其核心部分。无论你是在实验室中做测量,还是要设计一个网络应用,你都会需要将信息以一种稳定的方法存储下来。例如,如果你要在完成实验后分析结果,那么结果就必须存储下来。又或者你可能需要将所有注册了你的网站的用户的邮箱地址存储下来。

即使存储数据是最重要的事情,但在不同的场合下还是要使用不同的方法。必须考虑到不同的因素,例如产生的数据量,数据是否是自明的,你之后要如何使用这些数据等等。这篇文章将带你开始了解不同的存储数据的方法。

继续阅读

Python SQLite 数据库操作指导

Mar 7, 2014
by Sebastian Raschka


连接到一个 SQLite 数据库

我们将在本教程中使用的sqlite3是Python标准库的一部分,它是SQLite数据库的一个良好且简单的接口:没有涉及服务器进程,无需配置,也没有我们需要担心的其他障碍。

一般来说,在我们可以通过Python的sqlite3模块对SQLite数据库执行任何操作之前,惟一需要做的就是打开一个SQLite数据库文件的连接:

 

继续阅读

禁用系统 Win 键 或 Win+F 的方法

作为一个 Everything 的用户,一件必做的事情是将 Win+F 设置为打开 Everything 而不是系统搜索。

但要怎么做到这一点,就比较麻烦。常见的思路是 利用 AutoHotKey 来覆写 Win+F。但我的 Dell 笔记本有一些奇怪的问题,按下三个键以上的组合热键时,可能会导致 Ctrl 或 Alt 键锁定。

所以我需要的方法是禁用掉 Windows 自己的 Win+F 热键,再直接把 Win+F 指定为 Everything 的热键。

通过修改注册表可以实现 1. 禁用所有 Win 组合键 或 2. 有选择的禁用若干 Win 组合键。首先给大家一份系统 Win 组合键列表供参考。

Hot Key Brief Description
Win-B set focus to the taskbar notification area
Win-D show the desktop same as “Show the Desktop” on context menu
Win-E open Computer
Win-F search for files
Win-Ctrl-F search for computers
Win-M minimise windows same as Alt-M
Win-Shift-M restore windows same as Ctrl-Z
same as “Undo” on context menu
Win-R open the Run dialog similar to “Run…” on start menu
Win-T cycle forwards through task buttons on taskbar
Win-Shift-T cycle backwards through task buttons on taskbar
Win-F1 open Windows Help and Support
Win-Break open System Properties
Win-1
Win-2

Win-0
Quick Launch shortcuts
    1. 禁用所有 Win 组合键

打开注册表(Win+R,输入 regedit),在下列位置新建一个 Value 为 NoWinKeys 的键值,设置为 1。

Key: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Value: NoWinKeys
Type: REG_DWORD
Default: 0

2. 有选择的禁用若干组合键,例如我需要禁用 Win+F

打开注册表(Win+R,输入 regedit),在下列位置新建一个 Value 为 NoWinKeys 的键值,设置为 F。

注意这里如果需要禁用多个,继续添加字母即可。

Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Value: DisabledHotkeys
Type: REG_SZ or REG_EXPAND_SZ

重启后生效。然后将 Everything 的热键设置一下即可。

键盘

虽然穷,但像不少穷人一样,我乐于在一些买一些看似昂贵其实很便宜的小东西上折腾,简单说,就是各类外设。

最近大老远从日本扛了一把键盘回来。嗯,是的,鄙视我吧,不能免俗的买了一把机械键盘。


 

去之前仔细考虑过,要求如下:Filco,红轴,蓝牙,104键,美式布局。然而人生不如意十之八九。蓝牙断货了,我最后扛回来一把普通的 USB 键盘。

原先用的是戴尔的 8115,但用久了很脏。于是在一个无所事事的晚上,我就把它给拆洗了。拆洗之后不可避免的产生了想要买新键盘的念头。网上看了看,觉得还是一步到位,直接来一把 Filco 红轴退烧。

6123ueFI2+L._SL1200_

上面的 Win 键看起来让强迫症抓狂是么?不要担心,盒子里提供了两个侧刻的 Win 键键帽,换上之后,强迫症们就舒服多了。效果如下:

IMG_5974

 

 

好了,我们来谈谈剩下的一个问题。

这东西用起来怎么样,好用么,值么?

呃,我们现在不问这个了。以前我们是会问这种问题的。但现在,大家看到你买了这个东西,就结束了。其他的问题你可以去搜嘛,网上内容多得是。总之,我们现在想要的就是告诉大家,我跟风来了这么一次消费行为。晒点图给你们,晒之前最好 P 一下,就结束啦。使用体验什么的,反正我用了这么想,不代表你用了也会这么想。

哦对了,还有最最后一点,这东西从日本买很便宜,折合不到人民币700块。当然,很多人对键盘的期望价格是50块左右,这我也理解。买这么贵的键盘,是为了装逼么?唔。我只能说现在才想到买机械键盘来装逼,是不是太晚了?

 

Lbf, lbm, lbs 的转换问题

干机械,又要和英制单位,美标图纸打交道的人,常常会碰到这么几个词:

Pound(s), lb, lbm, lbs, lbf.

以及这么一个问题:

如何把 lbm 转换成 lbf?(How to convert lbm into lbf?)

比如,一个机构下面挂了 5000 pounds 的重量,现在想计算承载的压强是否超过许用应力(单位 psi, $$1psi = 1lbf/in^2$$),这时候你的承载到底是多少 lbf?

第一反应必然是 Google,Google 之后的第一个答案,却很可能把所有习惯了公制单位体系的人带到沟里去。

我们先从这个错误答案看起。其实,严格来说,这个答案并没错,只是不是你要的那个答案而已。

lbf 是力的单位,lbm 是质量单位,两者的关系:

$$1 lbf = 1 lbm * 32.2 ft/s^2$$

所以,当你需要把 lbm 转换成 lbf 的时候,要乘以这个 32.2 么?

NO.


这个问题的错误其实很简单。

$$1 lbf = 1 lbm * 32.2 ft/s^2$$只是 $$G=mg$$ 的变形而已。

做个简单类比,我们现在定义一个新的单位,叫做 kgf,1kgf 是 1kg 所受的重力。

那么,我们熟悉的 $$9.8N = 1kg * 9.8N/kg$$ 就会变成:

$$1 kgf = 1 kg * 9.8m/s^2$$

实际上,lbf 的定义就是 1 lbm 所受的重力,二者在数值上相等。但其中差了一个重力加速度 g。

所以,当需要把 Newton 转换成 lbf 的时候,就要当心了。

$$1 N = 1 kg m/s^2 =2.20 lbm3.28ft/s^2 =7.216 lbm*ft/s^2 =7.216/32.2 lbf= .224 lbf$$

双拼

今年3月18日号,我决定开始学习双拼输入。大约过了两周,我学会了。9月,iOS 开始支持第三方输入法。按这个节奏,我应该可以无碍使用我的蓝牙键盘在 iPad 上利用 zybuluo.com 好好的敲一些东西。

事实是,我的键盘还在抽屉里积灰。

但学会了双拼输入法,还是让我非常开心。我还没老到「老狗学不会新把戏」的年龄,记忆力也没衰退得那么厉害。这样一来,似乎所有人生的可能又重新展开似地,希望又铺在地上了。