python 之 模块
在python模块,是一个python文件,以.py结尾,包含了python对象定义 和python语句
通过import语句 ,语法
- import module1[,module2,module3,.....]
- 一个模块只会被导入一次,不管你执行了多少次import.这样可以防止导入模块被一遍又一遍的执行
From ..... import 语句,语法
- from module import fun1[,fun2,fun3....]
- 案例:
- from support import print_name,print_func
print_name("李四")
搜索路径
当导入一个模块,python解析器对模块位置的搜索顺序是:
1.当前目录(是当前项目的路径)
2.如果不在当前目录,python则搜索在shell变量pythonpath下的每个目录(可以查看电脑属性的环境变量,若是找不到可能被隐藏,可以直接c盘窗口输入路径)
3.如果都找不到,python会查看默认路径 。unix下,默认路径一般为/user/local/python
模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,pythonpath和由安装过程决定的默认目录
4.可以通过sys.path.append()函数
例如要调用的模块在E:\pyproject\append下有support.py文件
- sys.path.append("E:\\pyproject\\append")
- import support
dir函数
一个排好序列的字符串列表,内容是模块里定义过的函数
- import math
- content=dir(math)
- print(content) //得到所有该引用的内置函数
globals()和locals()函数
globals()在函数中调用,返回所在函数里能访问全局名字
locals()在函数中调用,返回所在函数里该函数能访问的命名
两个函数的返回类型都是字典,所以名字都能用keys()函数获取
reload()函数 语法:
- reload(module_name)
- //若是想让模块红心导入可以使用此函数
函数笔记
- 系统相关的信息模块: import sys
- sys.argv 是一个 list,包含所有的命令行参数.
- sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.
- sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a
- sys.exit(exit_code) 退出程序
- sys.modules 是一个dictionary,表示系统中所有可用的module
- sys.platform 得到运行的操作系统环境
- sys.path 是一个list,指明所有查找module,package的路径.
- 操作系统相关的调用和操作: import os
- os.environ 一个dictionary 包含环境变量的映射关系
- os.environ["HOME"] 可以得到环境变量HOME的值
- os.chdir(dir) 改变当前目录 os.chdir('d:\\outlook')
- 注意windows下用到转义
- os.getcwd() 得到当前目录
- os.getegid() 得到有效组id os.getgid() 得到组id
- os.getuid() 得到用户id os.geteuid() 得到有效用户id
- os.setegid os.setegid() os.seteuid() os.setuid()
- os.getgruops() 得到用户组名称列表
- os.getlogin() 得到用户登录名称
- os.getenv 得到环境变量
- os.putenv 设置环境变量
- os.umask 设置umask
- os.system(cmd) 利用系统调用,运行cmd命令
- 内置模块(不用import就可以直接使用)常用内置函数:
- help(obj) 在线帮助, obj可是任何类型
- callable(obj) 查看一个obj是不是可以像函数一样调用
- repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝
- eval_r(str) 表示合法的python表达式,返回这个表达式
- dir(obj) 查看obj的name space中可见的name
- hasattr(obj,name) 查看一个obj的name space中是否有name
- getattr(obj,name) 得到一个obj的name space中的一个name
- setattr(obj,name,value) 为一个obj的name
- space中的一个name指向vale这个object
- delattr(obj,name) 从obj的name space中删除一个name
- vars(obj) 返回一个object的name space。用dictionary表示
- locals() 返回一个局部name space,用dictionary表示
- globals() 返回一个全局name space,用dictionary表示
- type(obj) 查看一个obj的类型
- isinstance(obj,cls) 查看obj是不是cls的instance
- issubclass(subcls,supcls) 查看subcls是不是supcls的子类
- ################## 类型转换 ##################
- chr(i) 把一个ASCII数值,变成字符
- ord(i) 把一个字符或者unicode字符,变成ASCII数值
- oct(x) 把整数x变成八进制表示的字符串
- hex(x) 把整数x变成十六进制表示的字符串
- str(obj) 得到obj的字符串描述
- list(seq) 把一个sequence转换成一个list
- tuple(seq) 把一个sequence转换成一个tuple
- dict(),dict(list) 转换成一个dictionary
- int(x) 转换成一个integer
- long(x) 转换成一个long interger
- float(x) 转换成一个浮点数
- complex(x) 转换成复数
- max(...) 求最大值
- min(...) 求最小值
python 之 模块的更多相关文章
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
- Python的模块引用和查找路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python基础-模块
一.模块介绍 ...
- python 安装模块
python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...
- python Queue模块
先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...
- python logging模块可能会令人困惑的地方
python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...
- Python引用模块和查找模块路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译 ...
- Python Paramiko模块与MySQL数据库操作
Paramiko模块批量管理:通过调用ssh协议进行远程机器的批量命令执行. 要使用paramiko模块那就必须先安装这个第三方模块,仅需要在本地上安装相应的软件(python以及PyCrypto), ...
随机推荐
- 改装原生的dialog
改装 dialog 定制 View rootView = LayoutInflater.from(mContext). inflate(R.layout.nfc_tag_name_dialog, nu ...
- html5-块元素和内联元素
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- sitecore系统教程之媒体库
您可以管理媒体库中的所有媒体项目,例如要嵌入网页的图像或供访问者下载的图像.媒体库包含所有媒体项目,例如图像,文档,视频和音频文件. 在媒体库中,您可以: 将所有媒体文件保存在一个位置,并将其组织在与 ...
- qt5.5.1 移植4412的问题过程
1.编译错误: ../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isAlphanumeric(UCha ...
- mysql安装使用
linux系统 mysql-5.7.14-linux.zip部署包支持在CentOS 6.x/7.x 服务器硬盘大小要求 a) /data/mysql_data 如果存在该独立分区,要求该分区 &g ...
- AtCoder Beginner Contest 084(AB)
A - New Year 题目链接:https://abc084.contest.atcoder.jp/tasks/abc084_a Time limit : 2sec / Memory limit ...
- Array和ArrayList不同
Employee[] array = new Employee[10]; ArrayList<Employee> staff = new ArrayList<>(); 不同 A ...
- hive 用户行为分析(活跃。启动,留存,回访,新增)的一些经典sql
很简单的sql 用户分析语句 :只要自定义简单的udf函数 获取统计时间createdatms字段的使用的日历类 add方法 和simpledateformat 将long类型的 定义多个重载方法 获 ...
- 【独家】终生受用的Redis高可用技术解决方案大全
最近很多朋友向我咨询关于高可用的方案的优缺点以及如何选择合适的方案线上使用,刚好最近在给宜人贷,光大银行做企业内训的时候也详细讲过,这里我再整理发出来,供大家参考,如有不妥之处,欢迎批评指正,也欢迎推 ...
- python通过sftp远程传输文件
python提供了一个第三方模块paramiko,通过这个模块可以实现两台机器之间的网络连接,sftp是paramiko的一个方法,使用sftp可以在两台机器之间互相传输 拷贝文件.然而paramik ...