每天学一点Python(2)
9月16日(python扩展的安装和使用)
接着上一篇继续。按照之前计划,先分析导出的数据,再做进一步统计。
导出的数据是html类型的,想到的处理方法有:
1.直接readlines然后一行一行找我想要的数据
2.用自带的HTMLParser分析HTML
3.用Beautifulsoup分析HTML
4.用pyquery分析HTML
5.把HTML的转成Excel,然后用xlrd分析Excel
前两种方法目前感觉有点麻烦,比较倾向于第二三种。因为后面三种办法都需要安装扩展包,所以先学习安装扩展包。
一般方法是先解压扩展包,然后用cmd到扩展包的目录下,执行python setup.py install(直接在cmd执行python需要你在环境变量path里加上python的目录)。
先进一点的方法是用easy_install,去网上搜可能找到的是ez_setup.py,在cmd里python ez_setup.py就安装好了。也可能在网上找到的安装包叫做setuptools,没有问题,其实easy_install只是setuptools的一个命令,这两种安装的结果是一样的。
把easy_install的目录也放到Path里后就可以直接用“ easy_install 扩展包”来自动下载和更新想要的扩展包了,网上的说法是他可以自己解决扩展包之间的依赖问题。但我在安装pyquery时,反复报错,仔细看了看是缺少lxml包。到这里然后搜lxml,下载安装后,即可安装pyquery。
扩展包可以通过import与from...import来使用,第一种方法是导入所有,使用时需要sys.argv这样写完整,第二种是导入一部分,假如只导入了argv,则程序里直接省去“sys.”,如果写成“from sys import *”,可以省略“sys.”并且导入所有,但不加前面那部分太容易混淆了。
9月17日(Beautifulsoup分析HTML,SQLite入门)
1.使用Beautifusoup
仔细看了看Beautifusoup和pyquery,更喜欢Beautifulsoup的风格,最后决定用他了!
直接上代码
from bs4 import BeautifulSoup
def GetStuList(url):
doc=open(url)
soup=BeautifulSoup(doc)
StuList=[]
for i in soup.findAll('tr'):
j=i.findAll('td')
tuple1=(j[2].contents[0],
j[3].contents[0],
j[4].contents[0],
j[5].contents[0],
j[6].contents[0],
j[7].contents[0],
j[8].contents[0],
j[9].contents[0],
j[11].contents[0])
StuList.append(tupple1)
return StuList
首先导入BeautifulSoup,这里一定要注意啊,按网上的写法都是from BeautifulSoup import BeautifulSoup 新版本改成bs4,写法要变成上面的,我弄了半天才发现。
然后定义方法,打开HTML文件,然后用BeautifulSoup解析。介绍两个主要方法findAll和find,一个是查找所有,一个是只查找第一个,这两个方法的前两个参数都是(name=None, attrs={}),节点名字和属性集合。然后遍历把需要的值都放在一个List里。
为了方便以后用,把段代码保存到Python根目录下getlist.py,下次直接用 import getlist就可以了。注意,一定别写成 import getlist.py。
2.SQLite入门。
我用的是windows X86版本,这里是下载地址。
直接解压就可以了,为了在cmd方便使用,放在一个简单的目录下(也可以设置Path环境变量)。SQLite真是太简洁了,非常喜欢。用两条命令来开始。
sqlite3 woody.db //在sqlite所在目录下新建一个woody数据库,如果存在就打开。
sqlite> create table mytable(id integer primary key AUTOINCREMENT, name text); //新建一个表,有两列 剩下的其实就是SQL语句操作,大多数都支持。
创建表的时候假如没有令主键自动增长,插入的时候不插入主键也会自动增长,因为Sqlite中假如插入一条数据的时候主键为空,他就在现有表里找最大的主键值,然后+1。但这有可能导致删除了的主键接上继续。。所以,还是写上AUTOINCREMENT好一些。
然后用python连接数据库
import sqlite3 con=sqlite3.connect("C:/sqlite/woody.db")# 连接数据库
sql=con.cousor()#创建游标
sql.execute("SELECT * FROM myTable")#执行SQL语句
sql.fetchon()#取出一条,fetchmany()是取出多条
记得连接的时候一定要写全部路径,不然会在python根目录下直接创建一个新的数据库。==#
数据库连接con有下面几个方法。
commit()#事务提交
rollback()#事务回滚
close()#关闭一个数据库连接
cursor()#创建一个游标
游标sql有下面几个方法。
execute()#执行sql语句
executemany#执行多条sql语句
close()#关闭游标
fetchone()#从结果中取一条记录,并将游标指向下一条记录
fetchmany()#从结果中取多条记录
fetchall()#从结果中取出所有记录
scroll()#游标滚动
参数化插入操作
for t in[(0,'woody','hahah'),(1,'hahah','hah')]:
sql.execute("insert into catalog values (?,?,?)", t)
sql.commit()
9月21日
转眼都22号了,大家中秋快乐啊,三天假期经历和思考了很多,晚上仔细再写一篇。被项目拖的有些疲惫了,快一周没更新学习进度。
囧。。被项目拖着,python学习先停几天吧。
每天学一点Python(2)的更多相关文章
- 每天学一点Python
9月11日 1.用List实现Python里的?:条件表达式 ["false","true"][判断条件] 其实就是一个List[0]还是List[1]的问题. ...
- 最近都会来学一点Python
https://www.cnblogs.com/hellosecretgarden/p/9206648.html 打开电脑,发现Python都是之前的代码,将近一年之前的时间. 最近都会重新掌握起来, ...
- 每天学一点——python基本数据类型
python基本数据类型 字符串类型(str) 字符串类型的数据一定是描述性质的,且由引号括起来的数据都是字符串数据(单引号.双引号.三引号.) 如下图 (简单易懂) 这里列举一些不明所以的问题 如图 ...
- 每天学一点——python变量、常量与数字类型
python变量.常量与数字类型 常量 (一句话能概括先讲它) 严格来讲,python中除了π与N就没有不变的量 所以,在python中我们识别常量是看它是否全大写(如下图) 变量 变量,顾名思义,就 ...
- 每天学一点——python注释规范
python注释规范 python注释语法 这个是注释 注释是不影响代码运行的 当然注释也是有书写规范的,就像图片中的 注释前面#加空格再加上这条代码的注释(单行注释用#) 不然你会得到下面的结果 * ...
- 每天学一点——python用户的交互、格式化输出与基础运算符运用
用户交互 input输入 input接收的数据都是字符串类型 如下图 output输出 还可以相加 换行符 想让他们隔行排列的话就可以这样(如图) 在想各行的开头前面加上\n即可 那若是想将两个输出的 ...
- 人工智能时代,是时候学点Python了!
“是时候学点Python了”.作为一名不怎么安分的程序员,你或许觉得,产生这样的想法并不奇怪,但学习Python却是出于自己对工作现状以及如何应对未来挑战所作出的思考.读过我以前博客的朋友,可能都知道 ...
- 学了 Python 能用来做这些!
来源商业新知网,原标题:学了 Python 能用来做什么? 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的.随着近年大数据.人工智能的兴起,Python 越来越多的出现在人们 ...
- 编程当道,学点Python技术好傍身
为了填满AI时代的人才缺口,编程语言教育都从娃娃抓起了!如果你还不懂Python是什么将来怎么给孩子辅导作业呢? Python新手入门教程 近期,浙江省信息技术课程改革方案出台,Python言语现已断 ...
随机推荐
- MFC定时关机程序的实现3-最小化到托盘栏
这个定时关机运行过后默认最小化到托盘栏最好了,不用每次都去点了. 现在来看看如何将程序显示在托盘栏. 首先在头文件里声明一个变量和一个消息响应函数 //最小化到托盘栏 //第一步,生成一个成员变量,或 ...
- 如何部署安装软件:vs2010 'VS' Inno Setup
一直以来就是调试程序,生成的文件在debug或者release下,当没有其他资源文件时,这些程序也不用打包,直接就能够运行,但是程序中总会有一些额外的资源文件,视频啊,图片啊.这些需要打包在一个安装文 ...
- VMSAv8-64 translation table format descriptors
通常情况下,一个 descriptor 可能是以下的几种 entry: 非法或者异常的 entry. Table entry, 指向 next-level translation table. Blo ...
- hibernate注解配置举例说明
Hibernate Annotation (Hibernate 注解) 进入:http://www.hibernate.org 说明文档: 英文:http://docs.jboss.org/h ...
- MFC录制音频和播放音频
一.录制音频 在windows中提供了相应的API函数(waveIn这个族的函数)实现录音功能:在使用这些函数时,一定要引入相应的头文件 #include <windows.h> #inc ...
- POJ 3621 Sightseeing Cows(最优比例环+SPFA检测)
Sightseeing Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10306 Accepted: 3519 ...
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student." ,则输出" ...
- 糗事百科python爬虫
# -*- coding: utf-8 -*- #coding=utf-8 import urllib import urllib2 import re import thread import ti ...
- JavaScript真的要一统江湖了
ttp://www.newsmth.net/nForum/#!article/Python/125347?p=4 标 题: JavaScript真的要一统江湖了 发信站: 水木社区 (Fri Sep ...
- 5种你未必知道的JS和CSS交互的方法
随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊.本来它们是负责着完全不同的功能,但最终,它们都属于网页前端技术,它们需要相互密切的合作.我们的网页中都有.js文件和.css ...