背景
最近在做数据的交互与导入导出,刚开始还是按照原先的方式,把所有的参数写在配置文件中。
在运行前需要把配置改掉,这样很容易遗漏。
所以想到了写点简单的界面来配置一些选项,相对来说所见即所得。
Python 里可以写界面的选择很多,也有很强大和专业的库(e.g. PyQt),但是我们这种程度的使用,用原生的 tinkter 就足够了。
最近在做数据的交互与导入导出,刚开始还是按照原先的方式,把所有的参数写在配置文件中。
在运行前需要把配置改掉,这样很容易遗漏。
所以想到了写点简单的界面来配置一些选项,相对来说所见即所得。
Python 里可以写界面的选择很多,也有很强大和专业的库(e.g. PyQt),但是我们这种程度的使用,用原生的 tinkter 就足够了。
最近在导数据的时候,需要把日期型字符串转换成 datetime 类型再导入数据库,其中一些带时区的数据,不能直接使用 strftime 格式化。
数据主要带 EST 和 EDT,需要先转成 GMT 再处理。
在一些 csv 文件中会有日期类型,而如果我们想按日期类型导入到数据库中,那么就需要在 insert 前以 date(datetime)的类型传入。
假设简单的 csv 文件(sample.csv)如下:
1 | HolidayDate,Region |
Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。
为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下相容。
许多针对早期 Python 版本设计的程式都无法在 Python 3.0 上正常执行。
为了照顾现有程式,Python 2.6 作为一个过渡版本,基本使用了 Python 2.x 的语法和库,同时考虑了向 Python 3.0 的迁移,允许使用部分 Python 3.0 的语法与函数。
新的 Python 程式建议使用 Python 3.0 版本的语法。
除非执行环境无法安装 Python 3.0 或者程式本身使用了不支援 Python 3.0 的第三方库。目前不支援 Python 3.0 的第三方库有 Twisted, py2exe, PIL 等。
大多数第三方库都正在努力地相容 Python 3.0 版本。即使无法立即使用 Python 3.0,也建议编写相容 Python 3.0 版本的程式,然后使用 Python 2.6, Python 2.7 来执行。
Python 3.0 的变化主要在以下几个方面:
最近在看数据分析相关的知识点,同事那借了本 Python for Data Analysis 在看,接下来会记录一下学习心得和书上的例子,温故知新。
数据分析的门道还是挺多的,Python 的一些库(pandas, numpy, matplotlib)也很好用,不用自己去用标准库辛苦的写了,之前分析 log 如果了解这些知识点的话,效率会很高。
今天介绍书中的例子。
这周的一个目标是把之前 Benchmark 的脚本改写,使它支持并发的跑 job。
之前的配置是使用 ini,不适合配置现在这种需求,也不想用之前的 xml 来配置,所以今天就简单的研究了下使用 yaml 来配置并运行。
这两天在继续修改之前写的测试脚本。这两天想要实现并发跑一些任务,之后还要把结果写要 testresult.csv 中。
这样的话就涉及一个问题,因为是并发跑的,所以可以会出现资源争抢的问题,那么就需要对读写加锁控制。
在网上查了下,发现有第三方文件锁库 fcntl 可以使用,不过可惜的是Unix Specific
所以最直接的还是用线程锁来解决这个问题