#导入模块
import sys
sys.path
sys.path.append('D:\program files\Python34\PyWorks') #hello.py文件路径
#不用append PyWorks路径也可以,因为D:\program files\Python34在sys.path中
import hello #第一次导入会执行,路径增加.pyc文件
import hello #第二次不会执行
#执行第二次的方法(假如hello修改后需要再重新导入)
import imp
imp.reload(hello)
'''
#从模块导入函数:
import somemodule
from somemodule import somefunction
from sommodule import function1,function2,functoin3
from somemodule import *
import somemodule as module
from somemodule import somefunction as functoin
''' print('__name__ =',__name__) #__name__ = __main__
print('hello.__name__ =',hello.__name__) #hello.__name__ = hello
hello.hello() #不修改sys.path导入模块的方法
#1,将模块放置在合适的位置
import pprint #如果数据结构过大,不能在一行打印完,可以用pprint
pprint.pprint(sys.path)
#解释器可以从这些目录中找到所需的模块
#site-packages目录是最佳选择,因为它就是用来做这些事的 #2,告诉解释器去哪里找
#不希望将自己的模块填满Python解释器目录
#没有在Python解释器目录中存储文件的权限
#想将模块放在其他地方
#编辑sys.path,这不是通用的方法。标准方法是在PYTHONPATH环境变量中包含模块所在目录 #包
#当模块存储在文件中时(扩展名为.py),包就是模块所在的目录
#为了让Python将其作为包对待,他必须包含一个名为__init__py的文件(模块)
import PyWorks #只有__init__模块可用,hello,if_test不可用
import PyWorks.hello #hello模块可用,但只能通过全名PyWorks.hello 来使用
from PyWorks import if_test #if_test模块可用,可通过短名if_test使用 #dir函数
#查看模块包含的内容,所有函数,类,变量
print(dir(hello))
print([n for n in dir(hello) if not n.startswith('_')]) #__all__
#在模块内部设置的。from module import * 时可以屏蔽不想要的变量,函数,类
#还是可以通过from module import function 或module.function访问
#在模块内部被设置。
__all__=['a','b','c'] #__doc__,help(module)
#查看模块帮助 #__file__
#查看模块文件的位置 #标准库
#sys,os,fileinput,set,heap,deque,time,random
#fileinput
#>>>python some_script.py file1.txt file2.txt file3.txt
#依次对fili1到file3文件中所有行进行遍历。
#函数file.input,filename,lineno,filelineno,isfirstline,isstdin,nextfile,close #shelve P188
#在文件中存储数据,当做字典用
import shelve
db=shelve.open(r'F:\test.dat',writeback=True) #shelve创建一定的是.dat文件
person={}
person['name']=['a','b']
person['age']=[1,2,3]
db['']=person
db['']=person
print(db['']['name'])
db['']['name'].append('c') #这句不会写入shelve
print(db['']['name'])
tmp=db['']['name']
tmp.append('c')
print(tmp)
db['']['name']=tmp
print(db['']['name'])
db.close() #re
#参见regular文件夹
05-28 02:06