python几个重要的模块备忘

一:模块调用

二:时间模块time

三:系统接口模块os和sys

四:数据保存的几个模块json,pickle,xml,configparse

五:数据复制移动模块shutil

六:随机数random

七:日志模块logging

八:正则表达式re

模块用来分割一个程序,就像用函数或者类来分割程序一样。将一个程序的不同功能分割成多个文件,可以提高代码可读性。可能一个py文件仅完成一个算法,或完成一个socket,可以重复调用。python使用import来调用模块,模块可以是内置的,也可以自定义,也可以使用开源模块

怎么样来调用模块:

module1

def showStar(num):     #数星星的方法
    print("sky has %s star"%num)
class starSky:        #数星星的类
    def __init__(self,num):
        self.num=num
        self.show()
    def show(self):
        print("sky has %s star"%self.num)

调用者

import module1    #导入模块
from module1 import starSky      #导入模块中的类
from module1 import showStar as show     #导入模块中的函数
#执行时,导入的东西都会被解析
a=starSky(10)
show(12)

如果module1和module2的关系是:

| 调用者.py
| __init__.py
|
\---module_dir
    module1.py
    __init__.py

调用module1的方法:

import module_dir.module1 as mod1
from module_dir.module1 import starSky

a=starSky(10)
mod1.showStar(12)

能被导入的关键因素是环境变量,执行的python脚本的父目录作为环境变量:

>>> import sys
>>> sys.path
[‘D:\\visual doc\\pyProject\\模块研究专题‘, ‘E:\\软件\\python\\python35.zip‘, ‘E:\\软件\\python\\DLLs‘, ‘E:\\软件\\python\\lib‘, ‘E:\\软件\\python‘, ‘E:\\软件\\python\\lib\\site-packages‘]module_dir在D:\\visual doc\\pyProject\\模块研究专题下面,所以找到了

如果是这样子:

| module1.py
| __init__.py
|
\---module_dir
    __init__.py
    调用者.py

调用者的父目录module_dir下没有module1就会报错

import sys
sys.path.append("..")        #sys.path是环境变量的列表,只要在后面加上..就可以表示module1的父目录
import module1 as mod1
from module1 import starSky

a=starSky(10)
mod1.showStar(12)

| __init__.py
| 调用者.py
|
+---module_dir
    class1.py
    module1.py
    __init__.py

调用者调用module1:import module_dir.module1

module1调用class1:import class1

执行调用者,class1会找不到,因为环境变量是调用者的父目录,class1在这个目录下找不到,所以在import时应该要把module_dir的路径存到环境变量

也就是module1的__file__的父目录的绝对路径

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

所以:1个习惯就是,当要调用当前目录的另一个文件,就把当前目录的绝对路径存到环境变量

更绝一点,每次创建文件就把上面的代码写进去

几个重要的内置模块:

1,时间模块time

熟悉C语言的time.h的,类推python的这个模块,都很相似,作为一个内置模块函数,只要能拿来用就可以了


成员


参数/返回


说明


举例/返回结果


time.clock()


返回处理器时间


time.time()


返回值:当前时间的时间戳


返回当前时间的时间戳


结果: 1471246422.8152277


time.ctime()


参数一:时间戳

返回值:时间字符串


默认返回当前时间,可以指定时间戳,返回时间


print(time.ctime(0))

结果:Thu Jan  1 08:00:00 1970


time.gmtime()

time.localtime()


参数一:时间戳


localtime返回当前时间的struct_time

gmtime返回当前格林时区的时间


time.struct_time(

tm_year=1970, tm_mon=1,

tm_mday=1,

tm_hour=0,

tm_min=0,

tm_sec=0,

tm_wday=3,

tm_yday=1,

tm_isdst=0)


time.mktime()


参数一:struct_time


struct_time转换成时间戳


time.strftime()


参数一:指定格式

参数二:传入struct_time

返回:格式化时间字符串


struct_time转换成格式化时间,参数一和linux的date一样


2016-08-15 08:02:28


time.strptime()


参数一:字符串

参数二:格式

返回:struct_time


time.sleep()


参数一:秒数


指定时间暂停


time.sleep(3)暂停3秒

详解->c语言的time.h解释python的time

2,与操作系统相关,os和sys模块

os模块有可以执行操作系统的命令的函数,有目录系列(目录增删,移动,复制,属性,软硬链接),有路径系列(当前路径,上级路径,绝对路径),好多。。。

判断当前操作系统:

os.name     windows-->‘nt‘   linux/unix-->‘posix‘

sys.platform      windows-->‘win32‘    linux-->‘linux‘

直接进行命令行操作:

os.system(command)      直接进行命令操作

os.popen(cmd,mode,bufsize)      命令操作的结果返回给变量,返回的是<os._wrap_close object at 0x000002308955DDA0>

目录/文件系列:

os.chdir(path)更改当前目录

os.listdir(path)列出当前目录下的文件

os.getcwd()当前目录的绝对路径

os.makedirs(path)/os.removedirs(path)递归添加/删除目录

os.remove(file)删除

os.rename(old,new)重命名

路径系列

os.environ/sys.path:

os.environ是系统的环境变量

sys.path是python默认路径

os.path.abspath(path)  参数path的绝对路径

os.path.split(path)  把参数path分为目录和文件

os.path.dirname(path)/os.path.basename(path)

os.path.isdir(path)/os.path.isfile(file)判断路径和文件

os.path.join(path,name) path和name合并

os.path.splitext(file)  文件拆分为文件名和扩展名

sys.argv接收运行参数

3,数据文档和配置文档:

详解->轻量数据交换xml,json,ini

4,shutil文件,文件夹,压缩包拷贝,拷贝文件对象

5,logging日志模块

6,re正则表达式

时间: 2024-09-30 15:37:09

python几个重要的模块备忘的相关文章

python 时间模块备忘

由于要用到时间模块,为了下次不用去翻文档,这里也简单记录一下: 直接一个脚本看输出: import time print time.time() print time.localtime(time.time()) print time.strftime('%Y-%m-%d', time.localtime()) print time.strftime('%y-%m-%d', time.localtime()) print time.strftime('%Y-%m-%d %H:%M:%S', ti

Nmap备忘单:从探索到漏洞利用(Part 4)

这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下防火墙的一些基础知识以便绕过它. 什么是防火墙? 防火墙是用来控制网络访问的软件或硬件.分为以下两类:1.基于主机的防火墙:2.基于网络的防火墙. 基于主机的防火墙 这是在单台主机上运行的软件,用来控制入站流量(从网络向主机)和出站流量(从主机向网络).这些软件安装于操作系统之上,常见例子就是Lin

备忘-linux文件系统结构

用apache的时候总是要进入/var/www, 用久了开始好奇这些个目录都是派什么用处的,简单整理了一下 /bin 存放二进制命令文件,这个目录下面不允许存在子目录/boot bootloader的静态文件,当然OS的文件也必须在这里/dev 设备文件,MAKEDEV命令可以创建设备/etc 特定主机的配置文件,必须是静态文件,非可执行文件: opt, X11, sgml, xml/home 用户目录 /lib 存放主要的共享库和核心模块/media 可移除媒体的挂载点: floppy, cd

Cheat—— 给Linux初学者和管理员一个终极命令行&quot;备忘单&quot;

编译自:http://www.tecmint.com/cheat-command-line-cheat-sheet-for-linux-users/作者: Avishek Kumar原创:LCTT https://linux.cn/article-3760-1.html译者: su-kaiyao原文稍有改动 当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像‘help’,‘whereis’和

ExtJs4常用配置方法备忘

viewport布局常用属性 new Ext.Viewport({ layout: "border", renderTo: Ext.getBody(), defaults: { bodyStyle: "background-color: #FFFFFF;", frame: true }, //split为true,即可达到上下左右拉伸效果 //layout:fit,填满布局 //collapsible:true,north模块被收缩到最上面 items: [{ re

JqGrid相关操作备忘 方法列表

JqGrid相关操作备忘 方法列表 1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选

Webstorm常用快捷键备忘(Webstorm入门指南)

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE”等.与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能.百度百科 软件名称: JetBrains WebStorm(java.html5开发工具) v8.0.5 官方英文版 软件大小: 140.7MB 更新时间: 2014-10-01 现将最常用的快捷键挑出来备

ffplay for mfc 代码备忘

之前上传了一个开源播放器工程ffplay for mfc.它将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下,并且使用MFC做了一套界面.它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出.此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等:以及一些码流分析功能:视频解码分析和音频解码分析. 详细的软件使用就不仔细介绍了,本文简单介绍其中比较重要的模块的流程.以防长时间不看的话忘了~ 软件信息:

(备忘)vs2010编写动态链接库时导出函数的函数名问题及加载方式

在vs2010中使用.def文件导出函数时,仅仅添加.def文件是不够的,还要在 项目属性 -> 链接器 -> 输入 -> 模块定义文件 中添加自定义的.def文件名. (前提:导入导出都在头文件和源文件中定义好了) ##:静态加载动态链接库 将链接库的 头文件..lib文件 和 .dll 文件拷贝到工程目录下 然后#include 头文件,#pragma comment(lib,"**.lib") 最后直接在需要使用dll函数的地方使用函数就行 ##:动态加载动态链