Pycharm创建文件模板

进入File->settings->Editor->File and Code Templates->Python Script 添加以下内容: #!/usr/bin/env python # encoding: utf-8 #set( $SITE = "http://www.phpgao.com" ) """ @version: ?? @author: phpergao @license: Apache Licence @contact: endoffight@gmail.com @site: ${SITE} @software: ${PRODUCT_NAME} @file: ${NAME}.py @time: ${DATE} ${TIME} """ def func(): pass class Main(): def __init__(self): pass if __name__ == '__main__': pass 脚本中还可以添加自定义变量! 参考链接: http://wiki.woodpecker.org.cn/moin/CodeCommentingRule http://www.cnblogs.com/ziyouchutuwenwu/archive/2013/12/18/3480035.html https://github.com/phpgao/PyCharm-Python-Templates https://www.jetbrains.com/pycharm/webhelp/creating-and-editing-file-templates.html http://peter-hoffmann.com/2010/python-live-templates-for-pycharm.html

December 23, 2014 · 1 min · Me

linux无界面(headless)使用selenium抓取数据

问题 老高最近遇到一个需求,linux\centos下,使用selenium技术抓取数据。本来很简单的问题,但是由于内存限制,安装X window不现实,所以一个BT的想法诞生了,是否可以在centos命令行界面运行一个虚拟的桌面,然后使用selenium控制Firefox浏览器完成一些操作,Firefox运行在虚拟的桌面中,一切操作都在命令行中完成。 Google之,发现了Xvfb,他可以新建一个虚拟的X窗口,再配合python的pyvirtualdisplay,简直就是神器! 安装 centos下: # 安装Xvfb和pyvirtualdisplay yum install xorg-x11-server-Xvfb pip install pyvirtualdisplay 安装firefox和selenium yum install firefox pip install selenium 代码 from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() display.stop() 参考网站: http://selenium-python.readthedocs.org/en/latest/getting-started.html http://nullege.com/codes/search/selenium.webdriver.Remote.find_elements_by_class_name http://www.opsview.com/forum/opsview-core/how-do-i/how-do-i-install-selenium-centos-server https://gist.github.com/textarcana/5855427 http://scraping.pro/use-headless-firefox-scraping-linux/ http://serverfault.com/questions/363827/how-can-i-run-firefox-on-centos-with-no-display https://realpython.com/blog/python/headless-selenium-testing-with-python-and-phantomjs/ https://pypi.python.org/pypi/selenium http://selenium.googlecode.com/git/docs/api/py/selenium/selenium.selenium.html#module-selenium.selenium http://www.ibm.com/developerworks/cn/opensource/os-php-designptrns/ http://www.cnblogs.com/fnng/p/3230768.html http://www.cnblogs.com/fnng/p/3157639.html http://www.cnblogs.com/fnng/p/3157639.html

December 9, 2014 · 1 min · Me

使用pip升级所有安装的package

升级的时候注意权限 import pip from subprocess import call for dist in pip.get_installed_distributions(): call("pip install --upgrade -i https://pypi.douban.com/simple/ " + dist.project_name, shell=True)

December 6, 2014 · 1 min · Me

python获取操作系统平台、版本及架构

转自: http://openwares.net/linux/python_os_version_platform.html platform模块提供了底层系统平台的相关信息 系统架构 32位还是64位 >>> import platform >>> platform.architecture() ('64bit', 'ELF') # python 3.3.2+ 64 bits on debian jessie 64 bits ('32bit', 'WindowsPE') # python 3.3.2 32 bits on windows 8.1 64 bits ('64bit', 'WindowsPE') # python 3.3.2 64 bits on wndows 8.1 64 bits ('64bit', '') # python 3.4.1 64 bits on mac os x 10.9.4 ELF和WindowsPE是可执行文件格式 操作系统 linux,mac还是windows >>> platform.system() 'Linux' # python 3.3.2+ 64 bits on debian jessie 64 bits 'Windows' # python 3....

November 19, 2014 · 2 min · Me

python中浅拷贝和深拷贝

python中浅拷贝和深拷贝 今天写python脚本,遇到了一个问题。先贴代码: #coding=utf-8 new_list = [] # 声明一个list tmp = {'a':123,'b':'ccc'} # 新建一个dict new_list.append(tmp) # 追加 print tmp print new_list tmp['a'] = 456 # 修改tmp tmp['b'] = 'ddd' new_list.append(tmp) # 追加 print tmp print new_list # 执行结果: {'a': 123, 'b': 'ccc'} [{'a': 123, 'b': 'ccc'}] # 当改变了tmp,list中的值也会变化 {'a': 456, 'b': 'ddd'} [{'a': 456, 'b': 'ddd'}, {'a': 456, 'b': 'ddd'}] 如果是PHP会发生什么? $b = array(); $a = array('b'=>123); array_push($b , $a); $a = array('b'=>456); array_push($b , $a); var_dump($b); $a = new ArrayObject(array('b'=>123)); $arr = new ArrayObject(); $arr->append($a); $a['b'] = 456; $arr->append($a); var_dump($arr); # 执行结果 array(2) { [0]=> array(1) { ["b"]=> int(123) } [1]=> array(1) { ["b"]=> int(456) } } object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(2) { [0]=> object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(1) { ["b"]=> int(456) } } [1]=> object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(1) { ["b"]=> int(456) } } } } 由结果看,PHP中array_push方法和array_object的结果也不同。...

November 10, 2014 · 1 min · Me

把python脚本编译成exe

目前有三种方法 ...

August 18, 2014 · 1 min · Me

centos下安装python-MySQLdb

源码安装: 点击这里下载源码 解压前线装一下必要的包 yum install python-devel mysql-devel zlib-devel openssl-devel 解压 tar xf MySQL-python-1.2.3.tar.gz cd MySQL-python-1.2.3 修改mysite.cfg,指定mysql-config的路径 使用whereis mysql-config找路径 vi mysite.cfg #找到mysql_config = XXX 改为你的路径 继续安装 python setup.py build python setup.py install 工具安装: sudo easy_install mysql-python sudo pip install mysql-python 出现错误的解决办法 --- ```bash vi ~/.bash_profile # add export DYLD_LIBRARY_PATH='/usr/local/mysql/lib'; PATH="$PATH:/usr/local/mysql/bin" enjoy~ Win下请直接下载编译好的安装包: 请输入链接描述

August 15, 2014 · 1 min · Me

升级python2.7和安装pip,easy_install和setuptool

升级python和安装pip,easy_install和setuptool 新机子装环境什么的最麻烦了,在此记录一下python的升级和包(模块)管理软件 ...

July 30, 2014 · 2 min · Me

python交互模式下方向键乱码的正确解决方法

python交互模式下方向键乱码的正确解决方法 今天升级了python后,发现在交互模式中上下左右变成了乱码 ^[[A ^[[D ^[[B ^[[C ^[[D ^[[D ^[[D ^[[D ^[[D ^[[D ^[[D ^[[D 搜索了一下,普遍的解决方法是 因为方向键被转义了 原因主要是由于缺少readline Module问题导致的。而CentOS默认只有readline模块而没有readline-devel模块。 解决方法 yum -y install readline-devl 然后重新编译安装python就ok了 再仔细一看,这些问题都是N年前了,yum中的包名早都换了。。。怪不得总是报错,说找不到readline-devl,貌似现在开发版后面都变成devel了 ...

July 29, 2014 · 1 min · Me

bad-interpreter-没有那个文件或目录

bad interpreter: 没有那个文件或目录 起因 今天在linux上运行一个python脚本,总是报错bad interpreter,开始我以为是解释器的路径问题,可是whereis python告诉我路径没有错! google之,问题解决: 在windows上编辑的脚本,到linux上执行,会提示上面的错误 解决办法 dos2unix myfilename 报错的话执行一下yum install dos2unix -y 原因 在windows下编辑的脚本,是dos格式的,即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A。 以后再windows上的写脚本一定要三思!

July 29, 2014 · 1 min · Me