1.关于global声明变量的错误例子

I ran across this warning:
#!/usr/bin/env python2.3
VAR = 'xxx' if __name__ == '__main__':
global VAR
VAR = 'yyy'
---

OUTPUT:

./var.py:0: SyntaxWarning: name 'VAR' is assigned to before global declaration

----

But, a little twiddle quiets the warning, and I have no idea why:
#!/usr/bin/env python2.3
VAR = 'xxx' def set_var():
global VAR
VAR = 'yyy' if __name__ == '__main__':
set_var()
---

No output.
Global is normally used within a function definition to allow it to assign
to names defined outside the function (as in your 2nd example). In your
first example global is outside any function definition, and therefore not
meaningful, as well as giving a SyntaxWarning.

2.HTMLParser中feed

HTMLParser的feed()方法会调用

handle_starttag(), handle_data(), handle_endtag()方法

#! /usr/bin/env python 

#coding=utf-8 

from htmlentitydefs import entitydefs 

from HTMLParser import HTMLParser 

import sys 

class TitleParser(HTMLParser): 

    def __init__(self): 

        self.title = ' ' 

        self.readingtitle = 0 

        HTMLParser.__init__(self) 

    def handle_starttag(self, tag, attrs): 

        if tag == 'title': 

            self.readingtitle = 1 

    def handle_data(self, data): 

        if self.readingtitle: 

            self.title += data 

    def handle_endtag(self, tag): 

        if tag == 'title': 

            self.readingtitle = 0 

    def handle_entityref(self, name): 

        if entitydefs.has_key(name): 

            self.handle_data(entitydefs[name]) 

        else: 

            self.handle_data('&' + name + ';') 

    def gettitle(self): 

        return self.title 

fd = open(sys.argv[1]) 

tp = TitleParser() 

tp.feed(fd.read()) 

print "Title is:", tp.gettitle()

3 HTMLParser

HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当TMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它 主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。
handle_startendtag 处理开始标签和结束标签
handle_starttag     处理开始标签,比如<xx>
handle_endtag       处理结束标签,比如</xx>
handle_charref      处理特殊字符串,就是以&#开头的,一般是内码表示的字符
handle_entityref    处理一些特殊字符,以&开头的,比如 &nbsp;
handle_data         处理数据,就是<xx>data</xx>中间的那些数据
handle_comment      处理注释
handle_decl         处理<!开头的,比如<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
handle_pi           处理形如<?instruction>的东西

[python] view plaincopyprint?
>>> help(HTMLParser.HTMLParser.handle_endtag) 
Help on method handle_endtag in module HTMLParser: 
 
handle_endtag(self, tag) unbound HTMLParser.HTMLParser method 
    # Overridable -- handle end tag  
 
>>> help(HTMLParser.HTMLParser.handle_data) 
Help on method handle_data in module HTMLParser: 
 
handle_data(self, data) unbound HTMLParser.HTMLParser method 
    # Overridable -- handle data  
 
>>> help(HTMLParser.HTMLParser.handle_charref) 
Help on method handle_charref in module HTMLParser: 
 
handle_charref(self, name) unbound HTMLParser.HTMLParser method 
    # Overridable -- handle character reference  
 
>>> help(HTMLParser.HTMLParser.handle_decl) 
Help on method handle_decl in module HTMLParser: 
 
handle_decl(self, decl) unbound HTMLParser.HTMLParser method 
    # Overridable -- handle declaration  
 
>>> help(HTMLParser.HTMLParser.handle_startendtag) 
Help on method handle_startendtag in module HTMLParser: 
 
handle_startendtag(self, tag, attrs) unbound HTMLParser.HTMLParser method 
    # Overridable -- finish processing of start+end tag: <tag.../>

>>> help(HTMLParser.HTMLParser.handle_endtag)
Help on method handle_endtag in module HTMLParser:

handle_endtag(self, tag) unbound HTMLParser.HTMLParser method
    # Overridable -- handle end tag

>>> help(HTMLParser.HTMLParser.handle_data)
Help on method handle_data in module HTMLParser:

handle_data(self, data) unbound HTMLParser.HTMLParser method
    # Overridable -- handle data

>>> help(HTMLParser.HTMLParser.handle_charref)
Help on method handle_charref in module HTMLParser:

handle_charref(self, name) unbound HTMLParser.HTMLParser method
    # Overridable -- handle character reference

>>> help(HTMLParser.HTMLParser.handle_decl)
Help on method handle_decl in module HTMLParser:

handle_decl(self, decl) unbound HTMLParser.HTMLParser method
    # Overridable -- handle declaration

>>> help(HTMLParser.HTMLParser.handle_startendtag)
Help on method handle_startendtag in module HTMLParser:

handle_startendtag(self, tag, attrs) unbound HTMLParser.HTMLParser method
    # Overridable -- finish processing of start+end tag: <tag.../>

4. re.findall()

使用findall搜索得到的匹配结果,返回值是一个表,另在正则表达式中,使用‘()’可以设置返回结果为选中的内容。

5. 用python读写excel文件数据

import csv模块,将xls格式文件,重新save as为csv格式,具体使用如下

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import csv

with open('egg2.csv', 'wb') as csvfile:

spamwriter = csv.writer(csvfile, delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL)

spamwriter.writerow(['a', '', '', '', ''])

spamwriter.writerow(['b', '', '', '', ''])

spamwriter.writerow(['c', '', '', '', ''])

spamwriter.writerow(['d', '','','', ''])

spamwriter.writerow(['e', '','','', ''])
                    

or

#!/usr/bin/env python
# -*- coding:utf-8 -*- import csv
with open('egg2.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile,dialect='excel')
spamwriter.writerow(['a', '', '', '', ''])
spamwriter.writerow(['b', '', '', '', ''])
spamwriter.writerow(['c', '', '', '', ''])
spamwriter.writerow(['d', '','','', ''])
spamwriter.writerow(['e', '','','', ''])

第一种为所有数据存放到excel中一列,而第二种为数据分5列存入

5.正则表达式中.*?

在正则表达式中使用.*?匹配字符时,要注意其不包含\n,当中间含有换行时,可使用(.|\n)*?进行匹配

Python学习笔记5的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  3. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  4. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  7. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  8. Pythoner | 你像从前一样的Python学习笔记

    Pythoner | 你像从前一样的Python学习笔记 Pythoner

  9. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  10. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

随机推荐

  1. python之二维码生成

    生成的二维码只是网址的链接 直接上代码: import qrcode title = input("要生成的内容:") img = qrcode.make(title) with ...

  2. jsp变量的使用规则

    jsp是一种弱类型的交而不能语音,虽然看似没有像强类型语言那么多的代码规范,但是在实际使用的过程当中依然有不少的问题.下面就简单的梳理一下. 1.首先,jsp是一种弱类型的脚本语言,变量在使用之前无需 ...

  3. jdk 环境变量配置方法总结

    全部修改在用户变量/系统变量 系统变量→新建 JAVA_HOME 变量 .变量值填写jdk的安装目录(本人是 D:\java\Java\jdk1.8.0_72) 系统变量→寻找 Path 变量→编辑在 ...

  4. 如何快速查看github代码库中第一次commit的记录

    发现一个别人推荐的代码库用来学习源码, star星还不少,别人推荐从第一次commit开始阅读,于是试着去找commits的第一次 问题来了,这个代码库commits7855次,点击进入commits ...

  5. MATLAB的神经网络工具箱介绍

    一.使用matlab2010b以后的版本会有完整的神经网络工具箱,使用nnstart可以调出toolbox,然后选择需要的功能,导入数据,选择训练参数和每层神经元个数,最后训练会输出网络与结果. 二. ...

  6. mysql控制台出现“unknown column 'password' in 'field list'问题

    今天在windows系统上使用MySQL命令时,出现下面的"unknown column 'password' in 'field list'问题 解决办法如下,使用authenticati ...

  7. spring集成mybatis实现mysql读写分离

    前言 在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈.幸运的是目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上. ...

  8. C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 一点感想 很意外的,第一 ...

  9. promise处理多个相互依赖的异步请求

    在项目中,经常会遇到多个相互依赖的异步请求.如有a,b,c三个ajax请求,b需要依赖a返回的数据,c又需要a和b请求返回的数据.如果采用请求嵌套请求的方式自然是不可取的.导致代码难以维护,如何请求很 ...

  10. ES6新特性之生成器函数 (generator function): function*

    一.什么是生成器函数(generator function)? 生成器函数是ES6的新特性之一,它是一个在执行时能中途暂时退出,后面重新调用又能重新进入继续执行的一种函数. 并且在函数内定义的变量的所 ...