python内置模块与MySQLdb

内置模块

1. codecs

字符的编码是按照某种规则在单字节字符和多字节字符之间进行转换的某种方法。

从单字节到多字节叫做decoding,从多字节到单字节叫做 encoding。

在Python中,codecs模块提供了实现这些规则的方法,通过模块公开的方法我们能够方便地获取某种编码方式的Encoder和 Decoder工厂函数(Factory function),以及StreamReader、StreamWriter和StreamReaderWriter类。

open

codecs模块提供一个open方法,有三个参数encoding, errors, buffering。这三个参数都是可选参数,但是对于应用来说,需要明确指定encoding的值,而errors和buffering使用默认值即 可。使用方法如下:

fin = codecs.open("e://mycomputer.txt" , "r" , "utf-8" )
print fin.readline()
# 这是我的电脑 
fin.close()

深入理解传送门

2. collections

defaultdict

当使用普通的字典时,用法一般是dict={},添加元素的只需要dict[element] =value即,调用的时候也是如此,dict[element] = xxx,但前提是element字典里,如果不在字典里就会报错。defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值。

defaultdict接受一个工厂函数作为参数,这个factory_function可以是list、set、str等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0。

res_dict = collections.defaultdict(lambda: [0, 0, 0, 0, 0.0])
# 当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,这个默认值是[0, 0, 0, 0, 0.0]

3. os

传送门: Python OS 文件/目录方法

system

使用os.system(cmd)即可在python中使用linux命令。

os.system(cmd)的返回值:如果执行成功,那么会返回0,表示命令执行成功。

深入理解传送门: python中调用linux命令及os.system的返回值

path

传送门:Python os.path() 模块

join()
os.path.join(path1[, path2[, ...]])

函数功能:连接两个或更多的路径名组件,返回路径组成的字符串
如果各组件名首字母不包含’/’,则函数会自动加上
如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾

传送门

	import os

	Path1 = 'home'
	Path2 = 'develop'
	Path3 = 'code'

	Path10 = Path1 + Path2 + Path3
	Path20 = os.path.join(Path1,Path2,Path3)
	print ('Path10 = ',Path10)
	print ('Path20 = ',Path20)
	print(type(Path20))


	# 输出
	# Path10 = homedevelopcode
	# Path20 = home\develop\code
	# <class 'str'>
basename()

返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。

>>> import os
>>> path = '/Users/beazley/Data/data.csv'
>>> # Get the last component of the path
>>> os.path.basename(path)
'data.csv'
split()

按照路径将文件名和路径分割开

os.path.split(‘PATH’)

1.PATH指一个文件的全路径作为参数:
2.如果给出的是一个目录和文件名,则输出路径和文件名
3.如果给出的是一个目录名,则输出路径和为空文件名

mkdir()

只创建最外层目录,如果创建多级目录,报错"FileNotFoundError: [WinError 3] 系统找不到指定的路径"。目录存在报错。

makedirs()

递归的创建所有目录,目录存在报错FileExistsError。

4. ConfigParser

ConfigParser 简介

ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。

传送门:configparse模块

ConfigParser 初始化对象
使用ConfigParser 首选需要初始化实例,并读取配置文件:

	 import configparser
	 config = configparser.ConfigParser()
	 config.read("ini", encoding="utf-8")

ConfigParser 常用方法:

sections()

Return a list of the sections available; the default section is not included in the list.

返回会话可用的列表;默认部分不包括在列表中。

has_option(section, option)

If the given section exists, and contains the given option, return True; otherwise return False. If the specified section is None or an empty string, DEFAULT is assumed.

如果给定的部分存在,并且包含给定的选项,则返回True;否则返回False。如果指定的部分为None或空字符串,则为默认值。

read(filenames, encoding=None)

Attempt to read and parse an iterable of filenames, returning a list of filenames which were successfully parsed. If filenames is a string, a bytes object or a path-like object, it is treated as a single filename. If a file named in filenames cannot be opened, that file will be ignored. This is designed so that you can specify an iterable of potential configuration file locations (for example, the current directory, the user’s home directory, and some system-wide directory), and all existing configuration files in the iterable will be read.

尝试读取和解析一个可迭代对象的文件名,返回已成功解析的文件名列表。如果文件名是字符串、字节对象或类路径对象,则将其视为单个文件名。如果文件名中指定的文件无法打开,该文件将被忽略。这样设计的目的是,您可以指定潜在配置文件位置的迭代对象(例如,当前目录、用户的主目录和一些系统级目录),并且迭代对象中的所有现有配置文件都将被读取。

get(section, option, *, raw=False, vars=None[, fallback])

Get an option value for the named section. If vars is provided, it must be a dictionary. The option is looked up in vars (if provided), section, and in DEFAULTSECT in that order. If the key is not found and fallback is provided, it is used as a fallback value. None can be provided as a fallback value. All the ‘%’ interpolations are expanded in the return values, unless the raw argument is true. Values for interpolation keys are looked up in the same manner as the option.

获取指定部分的选项值。如果提供了vars,那么它必须是一个字典。该选项在vars(如果提供)、section和DEFAULTSECT中按顺序查找。如果没有找到该键并提供了回退,则将其用作回退值。不可以作为回退值提供。除非原始参数为真,否则所有’%'插入都在返回值中展开。插值键值的查找方式与选项相同。

5. re

match

re.match(正则表达式, 被匹配的字符串)

能够采用正则表达式匹配字符串(从左到右开始依次匹配)

若匹配成功,返回字符串的匹配成功的部分,同时可以使用group方法来提取具体的数据。

\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s(小写) 匹配空白,即空格、\t、\n、\r
\S (大写)匹配非空白
\w(小写)  匹配单词字符,即a-z,A-Z,0-9,_
\W (大写)匹配非单词字符,即不是a-z,A-Z,0-9,_
[ ] 匹配[ ]中列举的字符(^取反)
* 匹配前一个字符出现0次或者无限次,即可有可无
+ 匹配前一个字符出现1次或者无限次,即至少有1次
? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m} 匹配前一个字符出现m次(必须满足m次)
{m,} 匹配前一个字符至少出现m次
{m,n} 匹配前一个字符出现从m次到n次
{0,} 可以代表*号的意思——0次或无限次
{1,}  可以代表+号的意思——至少有1次
{0,1}可以代表?号的意思——出现1次或0次
group

group() 同group(0)返回匹配正则表达式整体结果

6. logging

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。

传送门:logging模块

日志等级(level)描述
DEBUG最详细的日志信息,典型应用场景是 问题诊断
INFO信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL当发生严重错误,导致应用程序不能继续运行时记录的信息

7. json

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它主要提供了四个方法: dumps、dump、loads、load。

传送门:Python中JSON的基本使用

语句功能
json.dumps将 Python 对象编码成 JSON 字符串
json.loads将已编码的 JSON 字符串解码为 Python 对象
json.dump和json.load需要传入文件描述符,加上文件操作。
JSON内部的格式注意一个好的格式能够方便读取,可以用indent格式化。

8. commands

通过python调用系统命令 只适用于linux
commands是提供linux系统环境下支持使用shell命令的一个模块

getoutput(‘cmd’)

#只返回执行的结果, 忽略返回值.

getstatus(‘cmd’)

#返回ls -ld file执行的结果.

getstatusoutput(‘cmd’)

返回两个元素的元组(status, result)

9. shutil

shutil模块主要作用与拷贝文件用的。

copyfile()

shutil.copyfile(文件1,文件2):不用打开文件,直接用文件名进行覆盖copy。

copytree()

shutil.copytree(源目录,目标目录):可以递归copy多个目录到指定目录下。

rmtree()

shutil.rmtree(目标目录):可以递归删除目录下的目录及文件。

传送门:Python shutil模块

10. traceback

traceback.extract_stack()

得知被谁调用

11. urllib2

所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地

urllib2模块定义的函数和类用来获取URL(主要是HTTP的),他提供一些复杂的接口用于处理: 基本认证,重定向,Cookies等。

urllib2是Python2.x自带的模块(不需要下载,导入即可使用)

urllib2在python3.x中被改为urllib.request

urllib2.Request(url, data=json_data)

新建Request实例,除了必须要有url参数之外,还可以设置另外两个参数:

  1. data(默认空):是伴随url提交的数据(比如要post的数据),同时HTTP请求将从"GET"方式改为"POST"方式。
  2. headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。

add_header(key=,val=)

在 HTTP Request 中加入特定的 Header,Content-Type用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容

参数只能有两个,一个为key,一个为value

故使用add_headers一次只能添加一个

urllib2.urlopen()

urlopen方法也可通过建立了一个Request对象来明确指明想要获取的url。调用urlopen函数对请求的url返回一个response对 象。这个response类似于一个file对象,所以用.read()函数可以操作这个response对象

url = 'http://www.baidu.com'
req = urllib2.Request(url)
resp = urllib2.urlopen(req)
page = resp.read()

参考:

  1. 深入理解urllib、urllib2及requests

外部模块

1. MySQLdb

MySQLdb模块是python连接mysql数据库的一个模块,在操作mysql数据库是经常使用,在连接数据库时connect是最常用的一种方法。

传送门:

  1. Python中MySQLdb的connect的用法
  2. MySQL Python 教程(一)
  3. MySQL Python 教程(二)

escape_string()

字符串数据被插入到表中,不过在此之前,它需要经过escape_string()方法处理。转义字符串作为查询参数使用。这是常见的做法,以避免恶意的SQL注入攻击。

connect()

connect()方法用于连接数据库,返回一个数据库连接对象。如果要连接一个位于www.gyyx.com服务器上名为mysql的MySQL数据库,连接串可以这样写:

conn = MySQLdb.connect(host=“www.gyyx.com”,user=“user”,passwd=“xxx”,db=“mysql” )

connect()的参数列表如下:

host,连接的数据库服务器主机名,默认为本地主机(localhost)。
user,连接数据库的用户名,默认为当前用户。
passwd,连接密码,没有默认值。
db,连接的数据库名,没有默认值。
port,指定数据库服务器的连接端口,默认是3306。

conn.cursor()

连接对象的db.cursor([cursorClass])方法返回一个指针对象,用于访问和操作数据库中的数据。

conn.cursor.close()

指针对象的cursor.close()方法关闭指针并释放相关资源。

conn.cursor.execute(query[,parameters])

指针对象的cursor.execute(query[,parameters])方法执行数据库查询。

conn.cursor.fetchall()

指针对象的cursor.fetchall()可取出指针结果集中的所有行,返回的结果集一个元组(tuples)。

conn.cursor.fetclone()

指针对象的cursor.fetchone()从查询结果集中返回下一行。

conn.close()

连接对象的db.close()方法可关闭数据库连接,并释放相关资源。

conn.begin()

连接对象的db.begin()方法用于开始一个事务,如果数据库的AUTOCOMMIT已经开启就关闭它,直到事务调用commit()和rollback()结束。

conn.commit()与conn.rollback()

连接对象的db.commit()和db.rollback()方法分别表示事务提交和回退。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值