python 模块

# -*- coding: utf-8 -*-

'''
1.定义:
模块用来从逻辑上组织python 代码(变量,函数,类,逻辑:实现一个功能),本质就是python 文件

2. 导入方法
import module1,module2

导入所有方法
import module1*



import 相当于导入一个文件
form import 相当于将导入模块的代码复制到当前文件中


as 关键字
from module import sayHello as hello
将sayHello 方法起一个别名‘hello’进行导入,调用直接 hello()


导入一个其他路径的python 的方法:
将 想导入的python文件的路径加入到sys.path 中
比如要导入 c:\test.py
sys.path.append("c:\")
os.path.abspath(__file__)

abspath(file) 获取文件的绝对路径
__file__ 当前文件
os.path.dirname(file) 获取file 所在目录


有一个包,结构如下
package_test
__init__.py
test1.py test1.py 中包含一个test 方法
我们导入包
import package_test
想调用test1中的test方法,可以这样调用:
修改 __init__.py ,加入 import test1

3.导入本质(路径搜索和搜索路径)
导入模块的本质是把python 文件解释一遍
导入一个包的本质 是执行该包下的__init__.py 文件

4.模块的分类
4.1 标准模块 : python 解释器自带的
4.2 开源模块(第三方模块)
4.3 自定义模块

'''

 动态导入模块:

# -*- coding: utf-8 -*-
'''
已知一个模块,比如 lib.aa (aa中有Test 方法), 但是以字符串的形式给出 , 我们可以通过动态导入的方式将这个模块进行导入
'''


#导入 lib.aa
mod = __import__("lib.aa")

#调用Test
mod.aa.Test()


#建议使用下边的这种方式
import importlib
lib = importlib.import_module('lib.aa')
lib.Test()

time 模块:

 1 '''
 2 time
 3 
 4 datetime
 5 
 6 
 7 时间有三种表现形式
 8 1. 时间戳 :  就是一秒的形式体现
 9 2. 元组 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=2, tm_hour=17, tm_min=24, tm_sec=28, tm_wday=3, tm_yday=306, tm_isdst=0)
10 3. 格式化输出  2016-6-1 10:31:22
11 
12 所以如果想获取当前时间是一年中的那一天, 可以将当前的时间转换成元组, 之后 .tm_yday 就可以了
13 '''
14 import time
15 import datetime
16 from test.datetimetester import HOUR
17 
18 
19 # 获取时间戳
20 time.time()
21 
22 #等待几秒
23 #time.sleep(2)
24 
25 
26 #把时间转换成 元组的形式 ,不传递参数则返回 UTC 的时间
27 time.gmtime()
28 
29 #把时间转换成 元组的形式 , 返回本地的时间
30 time.localtime()
31 
32 
33 #将元组转换成时间戳
34 tuple = time.localtime()
35 time.mktime(tuple)
36 
37 
38 #将元组格式化输出
39 x = time.localtime()
40 f = time.strftime("%Y-%m-%d %H:%M:%S",x)
41 print(f)
42 
43 
44 
45 #将格式化的字符串转化成元组
46 t = time.strptime(f, "%Y-%m-%d %H:%M:%S")
47 print(t)
48 
49 
50 #将  时间戳 转成  格式化字符串  
51 m1 = time.ctime()
52 print(m1)
53 
54 #将 元组  转成 格式化字符串
55 m = time.asctime()
56 print(m)
57 
58 
59 '''
60 datetime-------------------------
61 '''
62 
63 #获取当前时间
64 d= datetime.datetime.now()
65 print("current time is : %s",d)
66 
67 
68 
69 #获取几天前(或者几天后的)的时间
70 datetime.datetime.now()+datetime.timedelta(3) #3天后的时间
71 datetime.datetime.now()+datetime.timedelta(-3) #3天前的时间
72 h = datetime.datetime.now()+datetime.timedelta(hours = 3) #3小时后的时间
73 print(h)

random 模块:

# -*- coding: utf-8 -*-
import random


#随机1以内的浮点数
print(random.random())
#随机取一个区间的浮点数
print(random.uniform(1,3))

#随机1到3中的整数
print(random.randint(1,3))


print(random.randrange(1,3)) #不包含3



#从字符串(也可以传入一个列表)中随机获取一个值
print(random.choice("hello"))

#在一个字符串(也可以是一个列表)中随机获取多个值
print(random.sample("hello",2))



#将一个列表打乱
L1 = [1,2,3,4,5,6,7,8,9]
random.shuffle(L1)
print(L1)

os 模块:

# -*- coding: utf-8 -*-
'''
os模块, 主要是对操作系统功能的调用
'''
import os

#获取当前的操作目录
print(os.getcwd())

#切换目录
os.chdir(r"C:installEclipse_lunaeclipse") #如果有转译字符,可以加r  os.chdir(r"c:Users")
print(os.getcwd())

#返回当前目录

print(os.curdir)

#获取当前目录的父目录
print(os.pardir)




#递归创建目录
#os.makedirs(r"c:ac")

#不 递归创建目录
#os.mkdir(r"c:")


#递归删除目录
#os.removedirs(r"c:ac")


#删除目录
#os.rmdir("c:")


#列出目录   .代表当前目录
print(os.listdir("."))

#重命名
#os.renames("old", "new")


 
#获取当前操作系统的分隔符
print(os.sep)


#输出当前系统的终止符
print(os.linesep)


#环境变量中路径分隔符
print(os.pathsep)



#获取环境变量
print(os.environ)



#当前系统
print(os.name)




#执行系统命令
os.system("dir")


#分割路径
print(os.path.split(r"c:user	est"))


#获取文件路径
print(os.path.dirname(r"c:dea.txt"))
#获取文件名
print(os.path.basename(r"c:dea.txt"))



#判断文件是否存在
print(os.path.exists(r"c:a"))


#判断是否是绝对路径
print(os.path.abspath(r"c:a"))



#判断是否是一个文件
print(os.path.isfile(r"c:a.txt"))


#判断是否是一个目录
print(os.path.isdir(r"c: "))




#将多个路径组合返回
print(os.path.join("c:\","a","b.txt"))

sys 模块:

#程序正常退出
# sys.exit(0)

#获取输入的参数, 比如运行一个脚本 python test.py 1 2 3 , 将会输出 test.py,1,2,3
sys.argv

#获取python 版本信息
print(sys.version)

shutil 模块:

# -*- coding: utf-8 -*-
'''
shutil 模块主要是对文件进行复制等操作的模块
'''
import shutil

f1 = open("test")
 
f2 = open("test2","w") 
#复制文件
shutil.copyfileobj(f1, f2)
 
 
 
#输入文件名直接复制
shutil.copyfile("test2", "test3")
 
 
#递归的复制文件
shutil.copytree(r"c:a", r"c:")
 
 
 
 
#递归删除
shutil.rmtree(r"c:")
 
 
#移动文件
shutil.move(r"c:a", "c:\")





'''
shutil.make_archive(base_name, format, root_dir, base_dir, verbose, dry_run, owner, group, logger)
base_name: 压缩包的文件名,也可以是压缩包的路径,只是文件名的时候保存到当前路径,否则保存至指定路径
        aa  => 保存到当前路径
        c:	estaa =>保存到c:	est路径
format:压缩的种类:zip、tar、bztar、gztar
root_dir: 要压缩的文件夹路径(默认是当前路径)
owner:用户,默认是当前用户
group:组,默认是当前组
logger:用于记录日志,通常是logging.Logger对象

'''
shutil.make_archive("test","zip",r"C:")

shelve 模块:

'''
shelve 模块是一个简单的k,v 将内存的数据通过文件持久化的模块,可以持久化任何pickle 可支持的python 数据格式

'''
import shelve

d = shelve.open("test4")

class test():
    pass

t = "shelve str"
t2=5
t3 = test()

 #持久化字符串
d["str"] = t 

#持久化int
d["int"] = t2 

 #持久化类
d["class"] = t3

d.close()

'''
读取
'''
f = shelve.open("test4")
str = f.get("str")
print(str)
 
原文地址:https://www.cnblogs.com/gaizhongfeng/p/7808978.html