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)的更多相关文章

  1. 每天学一点Python

    9月11日 1.用List实现Python里的?:条件表达式 ["false","true"][判断条件] 其实就是一个List[0]还是List[1]的问题. ...

  2. 最近都会来学一点Python

    https://www.cnblogs.com/hellosecretgarden/p/9206648.html 打开电脑,发现Python都是之前的代码,将近一年之前的时间. 最近都会重新掌握起来, ...

  3. 每天学一点——python基本数据类型

    python基本数据类型 字符串类型(str) 字符串类型的数据一定是描述性质的,且由引号括起来的数据都是字符串数据(单引号.双引号.三引号.) 如下图 (简单易懂) 这里列举一些不明所以的问题 如图 ...

  4. 每天学一点——python变量、常量与数字类型

    python变量.常量与数字类型 常量 (一句话能概括先讲它) 严格来讲,python中除了π与N就没有不变的量 所以,在python中我们识别常量是看它是否全大写(如下图) 变量 变量,顾名思义,就 ...

  5. 每天学一点——python注释规范

    python注释规范 python注释语法 这个是注释 注释是不影响代码运行的 当然注释也是有书写规范的,就像图片中的 注释前面#加空格再加上这条代码的注释(单行注释用#) 不然你会得到下面的结果 * ...

  6. 每天学一点——python用户的交互、格式化输出与基础运算符运用

    用户交互 input输入 input接收的数据都是字符串类型 如下图 output输出 还可以相加 换行符 想让他们隔行排列的话就可以这样(如图) 在想各行的开头前面加上\n即可 那若是想将两个输出的 ...

  7. 人工智能时代,是时候学点Python了!

    “是时候学点Python了”.作为一名不怎么安分的程序员,你或许觉得,产生这样的想法并不奇怪,但学习Python却是出于自己对工作现状以及如何应对未来挑战所作出的思考.读过我以前博客的朋友,可能都知道 ...

  8. 学了 Python 能用来做这些!

    来源商业新知网,原标题:学了 Python 能用来做什么? 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的.随着近年大数据.人工智能的兴起,Python 越来越多的出现在人们 ...

  9. 编程当道,学点Python技术好傍身

    为了填满AI时代的人才缺口,编程语言教育都从娃娃抓起了!如果你还不懂Python是什么将来怎么给孩子辅导作业呢? Python新手入门教程 近期,浙江省信息技术课程改革方案出台,Python言语现已断 ...

随机推荐

  1. 53、listview、expandableListview如何选中时保持高亮?

    一.listView被选中后保持高亮 70down voteaccepted To hold the color of listview item when you press it, include ...

  2. c++ 吕凤翥 第五章 类对象一

    一   类的声明和实现 1. class tdate   //声明部分 { public: void setdate(int y,int m,int d); int isleapyear(); voi ...

  3. CSU-1974 神奇药水

    CSU-1974 神奇药水 Description ​ 对于csuxushu来说,能够在CSU(California State University)组织2017年的ACM暑期集训让他感到十分荣幸. ...

  4. hnust hold不住的老师

    问题 H: Hold不住的老师 时间限制: 1 Sec  内存限制: 128 MB提交: 415  解决: 63[提交][状态][讨论版] 题目描述 因为我们学校ACM集训队取得的一个个优异成绩,AC ...

  5. Python机器学习数据挖掘工具sklearn安装和使用

    python借助pip安装第三方库,所以首先确保电脑上已成功安装了pip. 安装sklearn前需要先安装numpy.scipy和pandas等库.安装的方式有两种: 一.前往python的组件库页( ...

  6. mybatis的使用及详解

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  7. [NOI2010][bzoj2006] 超级钢琴 [主席树/ST表+堆]

    题面: 传送门 思路: 首先容易想到用堆维护的O(n2logn)暴力 那么肯定就是在这个基础上套数据结构了[愉快] 然而我因为过于蒟蒻......只想得到主席树暴力***过去的方法 大概就是把前缀和算 ...

  8. 配置ubuntu16.04下Theano使用GPU运行程序的环境

    ubuntu16.04默认安装了python2.7和python3.5 .本教程使用python3.5 第一步:将ubuntu16.04默认的python2修改成默认使用python3 . sudo ...

  9. Java简明教程 12.多线程(multithreading)

    单线程和多线程 关于它们的区别,zhihu上有一个回答,我认为十分不错,如下: . 单进程单线程:一个人在一个桌子上吃菜. . 单进程多线程:多个人在同一个桌子上一起吃菜. . 多进程单线程:多个人每 ...

  10. BJOI2019退役记

    update:不想更这个游记……感觉更了只能说明自己菜得只会打嘴炮……那就让这个污痕一直残缺吧 太菜了,就不发具体分数了…… 被北师大附中的高一选手们吊打致死,退役了 4.6 4.7 4.13 4.1 ...