模块,用一大堆代码实现了某个功能的代码集合。
类似于函数编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个
的功能来,可能需要多个函数才能完成(函数又不可以在不同的.py文件中),n个文件组成的代码集合就称为模块。
模块分为三种;
- 自定义模块
- 第三方模块
- 内置模块
3.
此处是从lib文件中找到.account程序再到account中调用login的功能。
此处把account模块命名为更简洁的bbb名字
当创建的模块在D盘时写的运行文件在C盘中时:用sys。path。append(“D:”)时表示把D盘的程序追加到c盘
,就可以调用d盘的程序了。
sys模块
用于提供对python的解释器相关的操作:
- sys.argv 命令行参数list,第一个元素是程序本身路径
- sys.exit(n) 退出程序,正常退出时exit(0)
- sys.version 获取python解释程序的版本信息
- sys.maxint 最大的int值
- sys.path 返回模块的搜索路径,初始化时用pythonpath环境变量的值
- sys.platform 返回操作系统平台名称
- sys.stdout.write("piease;")
OS 模块
用于提供系统级别的操作;
下面列出了一些在Python os模块中比较有用的部分。它们中的大多数都简单明了。
- os.sep 可以取代操作系统特定的路径分割符。
- os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
- os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
- os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
- os.listdir()返回指定目录下的所有文件和目录名。
- os.remove()函数用来删除一个文件。
- os.system()函数用来运行shell命令。
- os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用' ',Linux使用' '而Mac使用' '。
- os.path.split()函数返回一个路径的目录名和文件名。
- os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。
- os.path.existe()函数用来检验给出的路径是否真地存在
- os和os.path模块
- os.listdir(dirname):列出dirname下的目录和文件
- os.getcwd():获得当前工作目录
- os.curdir:返回但前目录('.')
- os.chdir(dirname):改变工作目录到dirname
- os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
- os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
- os.path.exists(name):判断是否存在文件或目录name
- os.path.getsize(name):获得文件大小,如果name是目录返回0L
- os.path.abspath(name):获得绝对路径
- os.path.normpath(path):规范path字符串形式
- os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
- os.path.splitext():分离文件名与扩展名
- os.path.join(path,name):连接目录与文件名或目录
-
>>> import os >>> str1 = "D;" >>> str2 = "home" >>> str3 = "index" >>> n = os.path.join(str1,str2,str3) >>> print(n) D;homeindex
- os.path.basename(path):返回文件名
- os.path.dirname(path):返回文件路径
_doc_#py文件的注释
_file_#当前文件路劲
_package_
#当前文件None .
#导入的其它文件:指定文件所在包,用 。分隔
_cached_
#当前文件NONE
#导入的其它文件
_name_ #如果是主文件,_name_ == "_main_"否则,等于模块名。
以上就是我们为大家总结的Python os模块的一些比较重要的内容。
hashlib模块(就对文档进行对应加密)
用于加密相关的操作,代替了md5模块和sha模块,主要提供SHAI,SHA224,SHA256,SHA384,SHA512,MD5算法。
hashlib加密
import hashlib
>>> hash = hashlib.md5(bytes("sadfwed.3gg", encoding="utf-8"))
>>> hash.update (bytes("123",encoding="utf-8"))
>>> print(hash.hexdigest())
d4d367189ec1e7fc55b0ba1f3f14aa03
加密登录小练习
import hashlib#调用hashlib模块 def md5(arg): ooo = hashlib.md5(bytes("sad:fi:k", encoding="utf-8")) ooo.update(bytes(arg, encoding="utf-8")) #对密码进行加密再对密码的对应关系进行算法加密 return ooo.hexdigest() def login(user,pwd): with open("db","r",encoding="utf-8") as f:#以读的方式用utf-8算法打开文件 for line in f: u , p = line.strip().split("|")#在用户密码行内去掉空白在进行分割 if u == user and p == md5(pwd): return True def register(user,pwd): with open("db","a",encoding="utf-8") as f:#若用户注册则把u,p拼接到一起写进db文件里 temp = user + "|" + md5(pwd) f.write(temp) i = input("1,登录:2,注册") if i == "2": user = input("用户名:") pwd = input("密码:") register(user,pwd) elif i =="1":#elif表示另外一个如果 user = input("用户名:") pwd = input("密码:") r = login(user,pwd) if r: print("登录成功") else: print("登录失败")
shutil模块
直接参考http://www.cnblogs.com/wupeiqi/articles/4963027.html
time&datetime模块
import time
import datetime
- print(time.clock())#返回处理器时间,python3一开始废弃
- print(time.process_time())#返回处理器时间
- print(time.time())#返回当前系统时间戳
- print(time.ctime())#输出Tue Jan 26 18;23;48 2017 ,当前系统时间
- print(time.ctime(time.time()+86400))#将时间戳转化为字符串格式
- print(time.ctime(time.time()-86400))#将时间戳转化为struct_time格式,但返回的本地时间
- print(time.ctime(time.mktime(time.localtime())))#与time.localtime()功能相反,将struct_time格式转化成时间戳格式
#time.sleep(4)#sleep
print(time.strftime("%y-%m-%d %H;%M;%S",time.gmtime()))#将struct_time格式转成指定的字符串格式
print(time.strftime("2016-01-28",%Y-%M-%D"))#将字符串格式转化成struct_time格式
日期模块
-
import time
str_to_date = datetime.datetime.strptime("21/11/06 16;30","%d%m/%y %H;%M")#将字符串转化成日期格式 Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> str_to_date = datetime.datetime.strptime("21/11/06 16;30","%d%m/%y %H;%M") File "C:UsersAdministratorAppDataLocalProgramsPythonPython36lib\_strptime.py", line 565, in _strptime_datetime tt, fraction = _strptime(data_string, format) File "C:UsersAdministratorAppDataLocalProgramsPythonPython36lib\_strptime.py", line 362, in _strptime (data_string, format)) ValueError: time data '21/11/06 16;30' does not match format '%d%m/%y %H;%M' >>>
>>> new_date = datetime.datetime.now() + datetime.timedelta(days=10)
>>> print(new_date)比现在加十天
new_date = datetime.datetime.now() + datetime.timedelta(days=-10)
>>> print(new_date)比现在减10天
new_date = datetime.datetime.now() + datetime.timedelta(hours=-10)
>>> print(new_date)比现在减十个小时
new_date = datetime.datetime.now() + datetime.timedelta(seconds=120)
>>> print(new_date)#比现在加120s
json模块用于
用于将字典,列表,元组形式的字符串,转换成相应的字典,列表,元组
json.loads()将字符串转化成python基本数据类型
json.loads(s)
(python的基本类型)用于将字典,列表,元组形式的字符串,转换成相应的字典,列表,元组
json.dumps()将python基本数据类型转化成字符串
s = """{"dese":"invilad-citykey","status":1002}"""
此处用三个引号的原因如果"{"dese":"invilad-citykey","status":1002}"不知道引号括的是谁,三个引号是区分括的是谁。此处元素要加双引号
import json result = json.loads(s) print(result,type(result)) {'dese': 'invilad-citykey', 'status': 1002} <class 'dict'>
转化成字典
i = "[11,22,33,44]"
import json
result = json.loads(i)
print(result,type(result))
[11, 22, 33, 44] <class 'list'>
转化成列表
import json user_list = ["alex","eric","tomy"] s = json.dumps(user_list) print(s,type(s))
["alex", "eric", "tomy"] <class 'str'>
转化成字符串
模块安转的两种方法
requests第三方模块安转应用
1,安装
用软件管理工具安装pip3(python内部已下载)
pip3添加到环境变量
pip3 install requests
2,源码安装
- 下载代码:安装先下载
- 解压
- 进入目录
- 执行python文件中setup.py install 进行安装
安装成功
调用模块 import requests
requests模块
发送http请求(用python模拟浏览网页)
requests.get("http://www.baidu.com")表示用re·····登录某个网站
例如查询天气
import requests response = requests.get("http://www.weather.com.cn/adat/sk/101010500.html") response.encoding = "utf-8"#b把乱码用utf-8进行转化 result = response.text#text表示用文本输出 print(result)