① python中都有哪些模块呢
os模块
os.getcwd() # 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") # 改变当前脚本工作目录;相当于shell下cd
os.curdir # 返回当前目录: ('.')
os.pardir # 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') # 可生成多层递归目录
os.removedirs('dirname1') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') # 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') # # 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') # 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() # 删除一个文件
os.rename("oldname","newname") # 重命名文件/目录
os.stat('path/filename') # 获取文件/目录信息
os.sep # 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep # 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep # 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name # 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") # 运行shell命令,直接显示
os.environ # 获取系统环境变量
os.path.abspath(path) # 返回path规范化的绝对路径
os.path.split(path) # 将path分割成目录和文件名二元组返回
os.path.dirname(path) # 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) #
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) # 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) # 如果path是绝对路径,返回True
os.path.isfile(path) # 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) # 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) # 返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path) # 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) # 返回path的大小
sys模块
sys.argv # 命令行参数List,第一个元素是程序本身路径
sys.exit(n) # 退出程序,正常退出时exit(0)
sys.version # 获取Python解释程序的版本信息
sys.maxint # 最大的Int值
sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform # 返回操作系统平台名称
datetime模块
datetime.today()返回一个表示当前本期日期时间的datetime对象
datetime.now([tz])返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上
datetime.utcnow()返回当前utc日期时间的datetime对象
datetime.fromtimestamp(timestamp[, tz])根据指定的时间戳创建一个datetime对象
datetime.utcfromtimestamp(timestamp)根据指定的时间戳创建一个datetime对象
datetime.strptime(date_str, format)将时间字符串转换为datetime对象
② 那些Python中的模块
Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了。这个时候我们需要将python程序保存在一个文件里。通常这个文件是以.py结尾的。
对于大型的应用程序来说,一个文件可能是不够的,这个时候我们需要在文件中引用其他的文件,这样文件就叫做模块。
模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py 。在模块内部,模块名可以通过全局变量 __name__ 获得。
还是之前的斐波拉赫数列的例子,我们在fibo.py文件中存放了函数的实现:
编写完毕之后,我们可以在Python的解释环境中导入它:
然后直接使用即可:
常用的函数,我们可以将其赋值给一个变量:
或者,我们在导入的时候,直接给这个模块起个名字:
或者导入模块中的函数:
每个模块都有它自己的私有符号表,该表用作模块中定义的所有函数的全局符号表。因此,模块的作者可以在模块内使用全局变量,而不必担心与用户的全局变量发生意外冲突。
前面我们提到了可以使用import来导入一个模块,并且 __name__ 中保存的是模块的名字。
和java中的main方法一样,如果我们想要在模块中进行一些测试工作,有没有类似java中main方法的写法呢?
先看一个例子:
在模块中,我们需要进行一个判断 __name__ 是不是被赋值为 "__main__"。
我们这样来执行这个模块:
以脚本执行的情况下,模块的 __name__ 属性会被赋值为 __main__ , 这也是例子中为什么要这样写的原因。
看下执行效果:
如果是以模块导入的话,那么将不会被执行:
使用import导入模块的时候,解释器首先会去找该名字的内置模块,如果没找到的话,解释器会从 sys.path变量给出的目录列表里寻找。
sys.path的初始目录包括:
要想查看模块中定义的内容,可以使用dir函数。
上面的例子列出了当前模块中定义的内容,包括变量,模块,函数等。
我们可以给dir加上参数,来获取特定模块的内容:
java中有package的概念,用来隔离程序代码。同样的在Python中也有包。
我们看一个Python中包的例子:
上面我们定义了4个包,分别是sound,sound.formats, sound.effects, sound.filters。
__init__.py 可以是一个空文件,也可以执行包的初始化代码或设置 __all__ 变量。
当导入的时候, python就会在 sys.path 路径中搜索该包。
包的导入有很多种方式,我们可以导入单个模块:
但是这样导入之后,使用的时候必须加载全名:
如果不想加载全名,可以这样导入:
那么就可以这样使用了:
还可以直接导入模块中的方法:
然后这样使用:
如果一个包里面的子包比较多,我们可能会希望使用 * 来一次性导入:
那么如何去控制到底会导入effects的哪一个子包呢?
我们可以在 __init__.py 中定义一个名叫 __all__ 的列表,在这个列表中列出将要导出的子包名,如下所示:
这样from sound.effects import * 将导入 sound 包的三个命名子模块。
如果没有定义 __all__,from sound.effects import * 语句 不会 从包 sound.effects 中导入所有子模块到当前命名空间;它只会导入包 sound.effects。
Import 可以指定相对路径,我们使用 . 来表示当前包, 使用 .. 来表示父包。
如下所示:
③ Python编程网页爬虫工具集介绍
【导语】对于一个软件工程开发项目来说,一定是从获取数据开始的。不管文本怎么处理,机器学习和数据发掘,都需求数据,除了通过一些途径购买或许下载的专业数据外,常常需求咱们自己着手爬数据,爬虫就显得格外重要,那么Python编程网页爬虫东西集有哪些呢?下面就来给大家一一介绍一下。
1、 Beautiful Soup
客观的说,Beautifu Soup不完满是一套爬虫东西,需求协作urllib运用,而是一套HTML / XML数据分析,清洗和获取东西。
2、Scrapy
Scrapy相Scrapy, a fast high-level screen scraping and web crawling framework
for
Python.信不少同学都有耳闻,课程图谱中的许多课程都是依托Scrapy抓去的,这方面的介绍文章有许多,引荐大牛pluskid早年的一篇文章:《Scrapy
轻松定制网络爬虫》,历久弥新。
3、 Python-Goose
Goose最早是用Java写得,后来用Scala重写,是一个Scala项目。Python-Goose用Python重写,依靠了Beautiful
Soup。给定一个文章的URL, 获取文章的标题和内容很便利,用起来非常nice。
以上就是Python编程网页爬虫工具集介绍,希望对于进行Python编程的大家能有所帮助,当然Python编程学习不止需要进行工具学习,还有很多的编程知识,也需要好好学起来哦,加油!
④ python 用什么模块处理网页的javascript
lxml 配合 html5lib
可以很好的解析 html DOM
但对于js的解析 据我所知现在没有什么很成熟的模块能做这个
解析js肯定不是正则能办得到的, 比较现实的方案是
从webkit下手, 但光这一个库就有10+M
(利用webkit自己解析js等解析完之后读取html dom, 什么时候解析完,什么内容需要解析,什么内容不应该解析是使用的难点)
如果你碰到的js代码比较简单
可以自己看看js代码然后使用python模拟js代码得到网址
其中使用webkit是最难的(不是简单显示界面,需要自己hook)
模拟js其次
lxml是最普遍的了
(这个解析一般的html必须配合其他html解析库,自带的那个html解析不是很健壮碰到稍微差点的页面就不能正确解析)
另外html DOM 里面 beautifulsoup 是一个比较老道的使用正则实现解析HTML DOM的库.
⑤ Python必学的模块有哪些
简单来说,模块就是一堆代码实现某个功能,它们是已经写好的.py文件,在我们的.py文件中只需要用import导入模块就能使用它的功能了。
Python中的模块有内置标准模块、开源模块和自定义模块。
内置标准模块就是Python自带的模块,即下载好Python就可以直接导入使用的模块,例如我们之前使用过的math模块、time模块等。
开源模块就是不收费的由好心人写好的模块,我们可以通过下载这些模块后导入使用,开源模块一般也被我们称为第三方模块,例如数据处理工具NumPy、Pandas,以及深度学习着名框架Tensorflow都属于开源模块。
自定义模块与开源模块相对应,开源模块是他人写的,而自定义模块就是自己写好的模块。
Python常见的三个模块
一、time与datetime模块
在Python中,通常有这几种方式来表示时间:
时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
格式化的时间字符串(Format String)
结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
二、random模块
三、os模块
os模块是与操作系统交互的一个接口
⑥ Python调用自定义模块方法有什么
import语句
自定义模块可以采用import语句来进行引入,其操作步骤是先导入模块,再调用模块中包含的函数,可将自定义模块放入当前目录,便于解释器路径搜索,以下是导入自定义hello.py模块,并调用World函数的实例:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#导入模块
import hello
#现在可以调用模块里包含的函数了
support.print_func("World")
输出结果为:
Hello World!
以上实例也可以采用from…import的方法进行实现,是指从一个模块中导入指定的部分到当前命名空间中,以上功能可写成:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import World
如果要将模块中的所有内容全部导入当前命名空间,可采用from…import*的方法,具体实例如下:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import *
还需注意,当要导入一个模块时,Python解释器会对模块的位置进行搜索,具体搜索顺序规律如下:
1.当前目录;
2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录;
3.如果都找不到,Python会察看默认路径。
⑦ python标准库中常用的网络相关模块有哪些
标准库 Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。 Python标准库的主要功能有: 1.文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能 2.文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能 3.操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能 4.网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能 5.网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架 6.W3C格式支持,包含HTML,SGML,XML的处理。 7.其它功能,包括国际化支持、数学运算、HASH、Tkinter等 Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、Web开发、数据库接口、图形系统多个领域。第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组函式库,Boost.Python,使得以Python或C++编写的程式能互相调用。Python常被用做其他语言与工具之间的“胶水”语言。 着名第三方库 1.Web框架 Django: 开源Web开发框架,它鼓励快速开发,并遵循MVC设计,开发周期短。 ActiveGrid: 企业级的Web2.0解决方案。 Karrigell: 简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite。 Tornado: 一个轻量级的Web框架,内置非阻塞式服务器,而且速度相当快 webpy: 一个小巧灵活的Web框架,虽然简单但是功能强大。 CherryPy: 基于Python的Web应用程序开发框架。 Pylons: 基于Python的一个极其高效和可靠的Web开发框架。 Zope: 开源的Web应用服务器。 TurboGears: 基于Python的MVC风格的Web应用程序框架。 Twisted: 流行的网络编程库,大型Web框架。 Quixote: Web开发框架。 2.科学计算 Matplotlib: 用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。 SciPy: 基于Python的matlab实现,旨在实现matlab的所有功能。 NumPy: 基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。 3.GUI PyGtk: 基于Python的GUI程序开发GTK+库。 PyQt: 用于Python的QT开发库。 WxPython: Python下的GUI编程框架,与MFC的架构相似。 4.其它 BeautifulSoup: 基于Python的HTML/XML解析器,简单易用。 PIL: 基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。 PyGame: 基于Python的多媒体开发和游戏软件开发模块。 Py2exe: 将python脚本转换为windows上可以独立运行的可执行程序。
⑧ Python模块的几种类型简介
view plain to clipboardprint?
import os
import stat
import time<DIV></DIV>
fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}
for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'
import os
import stat
import time
fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}
for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'
⑨ Python html 模块简介
比如:
比如,数学符号 , ,可以直接获得:
escape 将特殊字符 & , < 和 > 替换为HTML安全序列。如果可选的 flags quote 为 True (默认值),则还会翻译引号字符,包括双引号( " )和单引号( ' )字符。
将字符串 s 中的所有命名和数字字符引用 (例如 > , > , > ) 转换为相应的 Unicode 字符。此函数使用 HTML 5 标准为有效和无效字符引用定义的规则,以及 HTML 5 命名字符引用列表 。
这个模块定义了一个 HTMLParser 类,为 HTML(超文本标记语言)和 XHTML 文本文件解析提供基础。
class html.parser.HTMLParser(*, convert_charrefs=True) 创建一个能解析无效标记的解析器实例。查找标签(tags)和其他标记(markup)并调用 handler 函数。
用法:
通过调用 self.handle_starttag 处理开始标签,或通过调用 self.handle_startendtag 处理结束标签。标签之间的数据通过以 data 为参数调用 self.handle_data 从解析器传递到派生类(数据可以分成任意块)。如果 convert_charrefs 为 True ,则将字符引用自动转换为相应的 Unicode 字符(并且 self.handle_data 不再拆分成块),否则通过调用带有字符串的 self.handle_entityref 或 self.handle_charref 来传递它们以分别包含命名或数字引用作为参数。如果 convert_charrefs 为 True (默认值),则所有字符引用( script / style 元素中的除外)都会自动转换为相应的 Unicode 字符。
一个 HTMLParser 类的实例用来接受 HTML 数据,并在标记开始、标记结束、文本、注释和其他元素标记出现的时候调用对应的方法。要实现具体的行为,请使用 HTMLParser 的子类并重载其方法。
这个解析器不检查结束标记是否与开始标记匹配,也不会因外层元素完毕而隐式关闭了的元素引发结束标记处理。
下面是简单的 HTML 解析器的一个基本示例,使用 HTMLParser 类,当遇到开始标记、结束标记以及数据的时候将内容打印出来。
输出:
HTMLParser.reset() 重置实例。丢失所有未处理的数据。在实例化阶段被隐式调用。
HTMLParser.feed(data) 填充一些文本到解析器中。如果包含完整的元素,则被处理;如果数据不完整,将被缓冲直到更多的数据被填充,或者 close() 被调用。 data 必须为 str 类型。
HTMLParser.close() 如同后面跟着一个文件结束标记一样,强制处理所有缓冲数据。这个方法能被派生类重新定义,用于在输入的末尾定义附加处理,但是重定义的版本应当始终调用基类 HTMLParser 的 close() 方法。
HTMLParser.getpos() 返回当前行号和偏移值。
HTMLParser.get_starttag_text() 返回最近打开的开始标记中的文本。结构化处理时通常应该不需要这个,但在处理“已部署”的 HTML 或是在以最小改变来重新生成输入时可能会有用处(例如可以保留属性间的空格等)。
下列方法将在遇到数据或者标记元素的时候被调用。他们需要在子类中重载。基类的实现中没有任何实际操作(除了 handle_startendtag() ):
HTMLParser.handle_starttag 这个方法在标签开始的时候被调用(例如: <div id="main"> )。 tag 参数是小写的标签名。 attrs 参数是一个 (name, value) 形式的列表,包含了所有在标记的 <> 括号中找到的属性。 name 转换为小写, value 的引号被去除,字符和实体引用都会被替换。比如,对于标签 <a href="https://www.cwi.nl/"> ,这个方法将以下列形式被调用 handle_starttag('a', [('href', 'https://www.cwi.nl/')]) 。 html.entities 中的所有实体引用,会被替换为属性值。
HTMLParser.handle_endtag(tag) 此方法被用来处理元素的结束标记(例如: </div> )。 tag 参数是小写的标签名。
HTMLParser.handle_startendtag(tag, attrs) 类似于 handle_starttag() , 只是在解析器遇到 XHTML 样式的空标记时被调用( <tag ... /> )。这个方法能被需要这种特殊词法信息的子类重载;默认实现仅简单调用 handle_starttag() 和 handle_endtag() 。
HTMLParser.handle_data(data) 这个方法被用来处理任意数据(例如:文本节点和 <script>...</script> 以及 <style>...</style> 中的内容)。
HTMLParser.handle_entityref(name) 这个方法被用于处理 &name; 形式的命名字符引用(例如 > ),其中 name 是通用的实体引用(例如: 'gt' )。如果 convert_charrefs 为 True,该方法永远不会被调用。
HTMLParser.handle_charref(name) 这个方法被用来处理 NNN; 和 NNN; 形式的十进制和十六进制字符引用。例如, > 等效的十进制形式为 > ,而十六进制形式为 > ;在这种情况下,方法将收到 '62' 或 'x3E' 。如果 convert_charrefs 为 True ,则该方法永远不会被调用。
HTMLParser.handle_comment(data) 这个方法在遇到注释的时候被调用(例如: )。例如, 这个注释会用 ' comment ' 作为参数调用此方法。
Internet Explorer 条件注释(condcoms)的内容也被发送到这个方法,因此,对于 ``,这个方法将接收到 '[if IE 9]>IE9-specific content<![endif]' 。
HTMLParser.handle_decl(decl) 这个方法用来处理 HTML doctype 申明(例如 <!DOCTYPE html> )。 decl 形参为 <!...> 标记中的所有内容(例如: 'DOCTYPE html' )。
HTMLParser.handle_pi(data) 此方法在遇到处理指令的时候被调用。 data 形参将包含整个处理指令。例如,对于处理指令 <?proc color='red'> ,这个方法将以 handle_pi("proc color='red'") 形式被调用。它旨在被派生类重载;基类实现中无任何实际操作。
注解: HTMLParser 类使用 SGML 语法规则处理指令。使用 '?' 结尾的 XHTML 处理指令将导致 '?' 包含在 data 中。
HTMLParser.unknown_decl(data) 当解析器读到无法识别的声明时,此方法被调用。 data 形参为 <![...]> 标记中的所有内容。某些时候对派生类的重载很有用。基类实现中无任何实际操作。
因此,我们可以如此定义:
下面介绍如何解析 HTML 文档。
解析一个文档类型声明:
解析一个具有一些属性和标题的元素:
script 和 style 元素中的内容原样返回,无需进一步解析:
解析注释:
解析命名或数字形式的字符引用,并把他们转换到正确的字符(注意:这 3 种转义都是 '>' ):
填充不完整的块给 feed() 执行, handle_data() 可能会多次调用(除非 convert_charrefs 被设置为 True ):
解析无效的 HTML (例如:未引用的属性)也能正常运行:
⑩ Python开发中常用的模块有哪些
1、os模块#用作系统级别的工作
2、sys模块#提供解释器相关操作
3、hashlib模块# 用于加密相关的操作
4、json和pickle模块 #用于序列化数据
5、subprocess模块
6、shuit模块#文件的复制移动
7、logging模块#格式化记录日志
8、random模块 用于取随机数
9、time datetime模块时间模块
10、re模块 正则匹配
关于Python开发中常用的模块有哪些,青藤小编就和您分享到这里了。如果您对python编程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于python编程的技巧及素材等内容,可以点击本站的其他文章进行学习。