Archive for 三月, 2011

文件读写操作

python进行文件读写的函数是open或file

file_handler = open(filename,,mode)

Table mode

模式 描述
r 以读方式打开文件,可读取文件信息。
w 以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容
a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建
r+ 以读写方式打开文件,可对文件进行读和写操作。
w+ 消除文件内容,然后以读写方式打开文件。
a+ 以读写方式打开文件,并把文件指针移到文件尾。
b 以二进制模式打开文件,而不是以文本模式。该模式只对Windows或Dos有效,类Unix的文件是用二进制模式进行操作的。
  (continue reading...)

Python常用模块

内置模块(不用import就可以直接使用)常用内置函数:

 

Python代码  收藏代码
  1. help(obj) 在线帮助, obj可是任何类型
  2. callable(obj) 查看一个obj是不是可以像函数一样调用
  3. repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝
  4. eval_r(str) 表示合法的python表达式,返回这个表达式
  5. dir(obj) 查看obj的name space中可见的name
  6. hasattr(obj,name) 查看一个obj的name space中是否有name
  7. getattr(obj,name) 得到一个obj的name space中的一个name
  8. setattr(obj,name,value) 为一个obj的name
  9. space中的一个name指向vale这个object
  10. delattr(obj,name) 从obj的name space中删除一个name
  11. vars(obj) 返回一个object的name space。用dictionary表示
  12. locals() 返回一个局部name space,用dictionary表示
  13. globals() 返回一个全局name space,用dictionary表示
  14. type(obj) 查看一个obj的类型
  15. isinstance(obj,cls) 查看obj是不是cls的instance
  16. issubclass(subcls,supcls) 查看subcls是不是supcls的子类

(continue reading…)


Ubuntu 系统下自启动选项的设置方法

可用一些小工具来管理 Ubuntu 的启动选项:
小工具 rcconf:
#sudo apt-get rcconf
#sudo apt-get install rcconf
root 下运行: #sudo rcconf
功能更全的工具:sysv-rc-conf
#sudo apt-get update
#sudo apt-get install sysv-rc-conf
运行:#sudo sysv-rc-conf
也可以直接加入启动程序,例如把 /etc/init.d/red5 加入到系统自动启动列表中:
#sudo sysv-rc-conf red5 on
其他使用方法见: google::Ubuntu::sysv-rc-conf 命令用法 (continue reading…)


1:GM的长袍
/script DEFAULT_CHAT_FRAME:AddMessage(“\124cffffffff\124Hitem:2586:0:0:0:0:0:0:0:0\124h[GM的长袍]\124h\124r”); (continue reading…)


Python DB-API开发MySQL脚本

本文将向读者详细介绍如何利用DB-API模块方便地开发MySQL脚本。我们首先介绍了有关软件的安装方法,随后分别用两个实例对DB-API模块做了深入的介绍,最后讨论了用Python DB-API编写的MySQL脚本的移植注意事项。

一、DB-API简介

Python语言是一种流行的开源编程语言,不仅自身表达能力强,而且还有许多辅助模块,着极大的增强了其功能。本文介绍的是一个名为DB-API的模块——顾名思义,该模块为开发人员提供了数据库应用编程接口。DB-API旨在帮应用开发人员摆脱特定数据库引擎的具体细节的纠缠,编写出能够在不同数据库引擎之间相互移植的数据库访问脚本。

DB-API的设计与Perl和Ruby的DBI模块、PHP 的PEAR DB 类以及Java的JDBC接口非常类似,它使用了一个两层体系结构,其中顶层提供了一个抽象接口,该接口可以泛用于所有支持的数据库引擎;而底层则是有一些特定引擎的驱动程序构成,这些驱动程序负责处理与特定引擎有关的细节。这样的话,为了使用DB-API来编写Python脚本,必须有相应的驱动程序来处理特定的数据库系统。对于MySQL来说,DB-API使用驱动程序MySQLdb来处理对MySQL数据库的访问。下面我们将首先详细介绍驱动程序的安装,然后阐述如何编写DB-API脚本。 (continue reading…)


Django应用程序部署到生产服务器

Django 是一个基于 Python 的开源 Web 应用程序框架,其目的是使创建数据库驱动的 Web 站点和 Web 应用程序更加容易。开发 Django 应用程序很简单,因为该框架包含了一个开发 Web 服务器。但是这个框架不适合在生产环境中使用,因此需要进一步将 Django 应用程序部署到 Web。在本文中,您将了解 Django 框架,以及如何在本地机器上安装它。探索 Django 应用程序是如何开发的,以及为您的应用程序创建的自动管理界面。接着您将了解如何在运行 Apache 和 mod_python 的服务器上将 Django 应用程序部署到 Web。最后,了解如何根据应用程序需求的增长而扩展 Django 应用程序。

Django

Django 是一个针对 Python 语言的开源 Web 开发框架,其目的是尽可能自动化更多的开发流程,使您能够专注于软件开发。这个框架既是松散耦合的,又是紧密相连的,因为框架的各个部分可以相互连接,但它们之间是彼此独立的。框架的独立性意味着您可以仅使用所需的 Django 部分,而不用担心依赖性带来的问题。

Django 加快了 Web 应用程序的编写,并且大大减少了所需的代码,从而使维护应用程序更加容易。Django 严格遵循 Don’t Repeat Yourself (DRY) 原则,因此每个不同的代码片段或数据仅在一个位置上出现。这意味着需要进行更改时,只修改一个地方就行,从而使更改软件更快、更轻松。

Django 是由 Lawrence Journal-World 报的 Web 开发团队在 2003 年开发的。当时该团队需要在很紧迫的时间内发布应用程序和改进,因此他们决定创建一个能节省时间的 Web 框架,以在期限内交付产品。该团队在 2005 年 7 月以开源软件的方式发布了这个框架,现在由来自世界各地的开发人员进行维护和开发。

Django 框架是在 Berkeley Software Distribution (BSD) 开源许可下发布的,因此能够再分发或重用这些源代码和二进制文件(可以修改),但必须在再分发包中保留版权需知、许可条款和免责声明。这些注意事项必须包含在再分发软件的文档和补充材料中。该许可规定,在未获得书面许可的情况下,不得使用 Django 这个名称或 Django 贡献者的名称冠名或促销衍生产品。 (continue reading…)


python遍历文件夹和文件

在Python中,文件操作主要来自os模块,主要方法如下:

os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回当前目录(’.’)
os.chdir(dirname):改变工作目录到dirname (continue reading…)


时间格式的正则表达式

//日期格式yyyy

PatternsDict.date_y= /^(\d{4})$/;

//日期格式yyyy-mm
PatternsDict.date_ym= /^(\d{4})-(0\d{1}|1[0-2])$/;

//日期格式yyyy-mm-dd
PatternsDict.date_ymd= /^(\d{4})-(0\d{1}|1[0-2])-(0\d{1}|[12]\d{1}|3[01])$/;

//时间格式hh
PatternsDict.time_h=/^(0\d{1}|1\d{1}|2[0-3])$/;

//时间格式hh:mm
PatternsDict.time_hm=/^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$/;

//时间格式hh:mm:ss
PatternsDict.time_hms=/^(0\d{1}|1\d{1}|2[0-3]):[0-5]\d{1}:([0-5]\d{1})$/;

 

格式为时间,就是说前两位都不能少,而且不能大于23,后面的时和分不能大于59,必须写在16:02:01而不能为16:2:1

 

[0-2][0-3]:[0-5][0-9]:[0-5][0-9]

 

用Comparidator
operator设成DateTypeCheck
type设成Date

这里是判断YYYY-MM-DD这种格式的,基本上把闰年和2月等的情况都考虑进去了,不过我已经忘了在哪里找到的。

^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$

下面的是加了时间验证的

^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$

【aspx页面内:<%# DataBinder.(Container.DataItem,”Company_Ureg_Date”)%>
显示为: 2004-8-11 19:44:28
我只想要:2004-8-11 】

<%# DataBinder.(Container.DataItem,”Company_Ureg_Date”,”{0:yyyy-M-d}”)%>

应该如何改?

【格式化日期】
取出来,一般是object
((DateTime)objectFromDB).ToString(“yyyy-MM-dd”);

A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|
(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))
|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])
|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$

B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]

^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$

 

 


jQuery live() failing with jQuery UI datepicker

I’ve got it to bind to the lightbox’d inputs on the first appearance of the lightbox, but it’s not working afterwards.

I’m doing the following:

$(function() { 
    $('.jQueryCalendar').live('click', function () {
            $(this).datepicker({showOn: 'both'}).focus();
    });
});

When the lightbox closes, I’m re-appending it’s content to the page (in order to not lose the content div), and this seems to be killing the live() call. [NB the re-appending takes place after the original content is destroyed]

EDIT

Ok, the live() event IS firing (thanks to Nick Craver for that), however the datepicker is no longer being shown. Does anyone have an idea why?

EDIT #2

Ok, the use of .html() to re-append causes the events to need rebinding, but the element to bind still has the class hasDatepicker, which messes with the datepicker() initialisation.

To fix, simply user

$(this).removeClass('hasDatepicker') .datepicker({showOn: 'both'}).focus();

 


Elance:网络公司最需要百项技术PHP居首

根据2010年Elance第四季关于美国地区的就业资讯整理,发现了关于网络方面的工作机会有大幅的提升,比上一季增加了38%。尤其是在创意,行销及移动产业的工作机会有显着的增幅。除了想法以外企业家也需要有技术的人才,但企业们最需要僱员具备的技能是甚么呢?又反应了怎么样的市场趋势呢?下图是Elance整理出公司最需要的百项技术。

 

 

图表,Elance也做了一些分析,也就跟目前最热门的两项网络趋势有关,手机及社群网站:

首先他们指出App开发者在市场上的需求增加了20%, 当中iPad类的App开发者市场需求目前每季增长15%,而iPhone类App开发者的市场需求则每季增长10%。同时,市场对于Android的程式开发者也有大量需求。而现阶段对移动设备的程序开发者尚未饱满,同时Apple及Android手机又不断出现在市面上,因此短期内还是需要大量的程序开发人员。

至于网络营销,由于社群网络(如Facebook)的发达,所以是在各个类别中成长速度最快的,企业们非常重视也仰赖线上营销,尤其是社群媒体营销(Social Media Marketing),联盟营销(Affiliate Marketing),以及搜索引擎营销(Search Engine Marketing)这三方面。

另外Elance也特别强调了Html5的增幅也很大,每一季增加了48%的需求,原因是除了需要更新网站的界面外,也需要因应在平板电脑以及行动装置上的浏览经验而做出调整,话虽如此,对Flash(#29)的需求还是持平(甚至走下坡)。另外网站架构方面最需要的人才还是 WordPress(#2)为主,还有Joomla!(#21)及Drupal(#56)。

 

1 Comment more...

Copyright © 1996-2010 Add Lives. All rights reserved.
iDream theme by Templates Next | Powered by WordPress