十.模块和库
1.模块操作:
- 导入单独的模块:
- 把模块文件的位置,添加到sys.path中。(不常用)
- 把模块放到“lib\\site-packages\\”目录下。(PyCharm兼容性更好)
- 导入包(文件夹):
-
- 方法与单独模块一样,且包下面必须要有__init__.py文件
-
-
#模块目录的查找和打印------------------------------------------------------- import sys,pprint #查目录 ModulePath=sys.path #可以逐行打印 pprint.pprint(ModulePath) #模块的导入------------------------------------------------------------------ #添加模块目录,这种做法不常用 ModulePath.append("C:\\Users\\i2011\\PycharmProjects\\Python基础教程学习代码\\charpter10---模块和标准库") # #添加后可以导入模块 # import Module_Test # #也可以把模块放入"lib\\site-packages\\"下 # import test_hello #导入目录包,目录下必须要有__init__.py文件 #导入site-packages下的包,不import其他py文件 import MyPackage #仅默认导入__init__.py import MyPackage.test_hello #导入添加的目录的包 import Package_Test import Package_Test.Module_Test #模块重新导入 import importlib MyPackage=importlib.reload(MyPackage) MyPackage.test_hello=importlib.reload(MyPackage.test_hello) Package_Test=importlib.reload(Package_Test) #模块的探索--------------------------------------------------------------------- import copy print(dir(copy)) #包含隐藏的内容 a=[n for n in dir(copy) if not n.startswith("_")] #这样将过滤到_开头的隐藏内容 print(a) #模块中__all__,指定的内容 #在模块中设置__all__,在from copy import* 语句中导入__all__中指定内容,否则导入所有不以_打头的全局名称 print(copy.__all__) #查看模块的帮助 help(copy.copy) #查看函数的内置文档 print(range.__doc__) #查看模块的位置 print(copy.__file__)
2.标准库
- sys与os
import sys print(sys.argv) import os #打开window应用程序,必须按照windows shell格式 #下面两句将执行win应用,第一句单双引号反了不行 #os.system(r'C:\"Program Files (x86)"\"Maxthon5"\"Bin"\Maxthon.exe') #os.system打开外部应用,应用结束后才进入下一句代码 # os.startfile(r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe") # os.startfile(r"C:\Program Files (x86)\Maxthon5\Bin\Maxthon.exe") # os.startfile(r"D:\Program Files (x86)\360Chrome\Chrome\Application\360chrome.exe") #直接打开网页 # import webbrowser # webbrowser.open("https://www.python.org") # import fileinput # for line in fileinput.input(inplace=True): # line=line.rstrip() # num=fileinput.lineno() # print("{:<50} # {:2d}".format(line,num)) #集合,没有重复的元素 a=set([1,2,3,4,2,1]) print(a) #{1, 2, 3, 4} #{...}来设定集合,但是不能{},{}表示字典 b={2,3,8,8,8,8,"abc","abc","abc"} print(b) #{8, 2, 3, 'abc'} print(a.union(b),a|b,a&b) #集合运算 #集合是可变的,不能用作字典中的键。集合只能包含不可变(可散列)的值,不能包含其他集合 a.add(frozenset(b)) #如果要包含其他集合,必须冻结住该集合 print(a) #{1, 2, 3, 4, frozenset({8, 2, 3, 'abc'})}
- shelve
#shelve模块是一个简单的将内存数据通过文件持久化的模块 #shelve模块用于创建一个永久性映射 import shelve #s得到一个shelf对象 try: s=shelve.open("test.csv",writeback=True) s["y"]=["a","b","c"] s["y"].append("d") info={'age':22,'job':'IT'} name=["ZhangYuan","Rain","Test"] s["name1"] =name s["info1"] = info print(dict(s)) finally: #防止数据库文件受损,在最后应该关闭它 s.close()