python-unicode

unicode一直是头疼事儿,今天清理一下。

  1. ipython notebook默认编码 'Ascii'
  2. 输入open(f,'r'),如果有中文,需要转换才能使用
  3. 网络数据如果要写入文件open(f,'w'),需要encode转为utf8

只要是中文使用出现出入"Ascii ....Unicode",就转换下:

addressto = addressto.decode("utf-8")

彻底改变编码:

  1. python3,都是utf-8
  2. 通过sys改变编码,可以在cmd里面用,notebook不支持
  1. # -*- coding: utf-8 -*-
  2. import sys
  3. reload(sys)
  4. sys.setdefaultencoding('utf-8')
  5. # print sys.getdefaultencoding()

raw_input

#On windows len_in = raw_input(u"请设置下载位置n".encode('GBK'))

if len_in == '':print(u'设置完毕')

ft = driver.find_element_by_id('downloadLocationPath')

regex

用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

匹配中文字符的正则表达式: [u4e00-u9fa5]

评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]

评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:ns*r

评注:可以用来删除空白行

匹配HTML标记的正则表达式:]>.?1>|<.>

评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s|s$

评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*

评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*

评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}

评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}

评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)

评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}

评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+

评注:提取ip地址时有用

匹配特定数字:

^[1-9]d*$    //匹配正整数

^-[1-9]d*$   //匹配负整数

^-?[1-9]d*$   //匹配整数

^[1-9]d*|0$  //匹配非负整数(正整数 + 0)

^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)

^[1-9]d.d|0.d[1-9]d$   //匹配正浮点数

^-([1-9]d.d|0.d[1-9]d)$  //匹配负浮点数

^-?([1-9]d.d|0.d[1-9]d|0?.0+|0)$  //匹配浮点数

^[1-9]d.d|0.d[1-9]d|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)

^(-([1-9]d.d|0.d[1-9]d))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)

评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串

^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

ruby-on-rails-with-ruby2-0

  1. linux mint 15 install ruby 2.0
    • sudo apt-get -y update
    • sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
    • cd /tmp
    • wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.bz2
    • tar -xvjf ruby-2.0.0-p0.tar.bz2
    • cd ruby-2.0.0-p0/
    • ./configure --prefix=/usr/local
    • make
    • sudo make install

  2.  install sqlite3
    • sudo apt-get install sqlite3 libsqlite3-dev

  3.  install rails
    • sudo apt-get install nodejs
    • sudo gem install rails

shell-keywords

在目录下所有ltestats文件中找关键词nackcnt: find . -name 'ltestats' -print | grep -R -i -n 'nackcnt'>nackcnt

sublime_text-package-control

package control

import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

ppa install

sudo add-apt-repository ppa:webupd8team/sublime-text-2

sudo apt-get update

sudo apt-get install sublime-text

tdlte-4g-card

移动4G卡TD-LTE目前营业厅免费换,真是企业良心啊。不用换号,保留原2G套餐,直接2G变4G,Perfect