Python每日一练------内置函数+内置变量+内置模块

1.内置函数

Python所有的内置函数

    Built-in Functions    
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reversed() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set() apply()
delattr() help() next() setattr() buffer()
dict() hex() object() slice() coerce()
dir() id() oct() sorted() intern()

置方法  说明
__init__(self,...)  初始化对象,在创建新对象时调用
 __del__(self)  释放对象,在对象被删除之前调用
 __new__(cls,*args,**kwd)  实例的生成操作
 __str__(self)  在使用print语句时被调用
 __getitem__(self,key)  获取序列的索引key对应的值,等价于seq[key]
 __len__(self)  在调用内联函数len()时被调用
 __cmp__(stc,dst)  比较两个对象src和dst
 __getattr__(s,name)  获取属性的值
 __setattr__(s,name,value)  设置属性的值
 __delattr__(s,name)  删除name属性
 __getattribute__()  __getattribute__()功能与__getattr__()类似
 __gt__(self,other)  判断self对象是否大于other对象
 __lt__(slef,other)  判断self对象是否小于other对象
 __ge__(slef,other)  判断self对象是否大于或者等于other对象
 __le__(slef,other)  判断self对象是否小于或者等于other对象
 __eq__(slef,other)  判断self对象是否等于other对象
 __call__(self,*args)  把实例对象作为函数调用

2.内置变量

vars()查看内置全局变量

以字典方式返回内置全局变量

#!/usr/bin/env python
# -*- coding:utf8 -*-
print(vars())
#输出
# {'__builtins__': , '__spec__': None, '__package__': None, '__doc__': None, '__name__': '__main__', '__cached__': None, '__file__': 'H:/py/index.py', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000AC32C66A58>}
__doc__ :获取文件的注释

__file__ 【重点】获取当前文件的路径

__file__ ,一般配合os模块的os.path.dirname(),os.path.basename() ,os.path.join() 模块函数来使用

#!/usr/bin/env python
# -*- coding:utf8 -*-
import os
a = __file__    # __file__全局变量获取当前文件路径
print(a)

b = os.path.dirname(a) #获取文件当前目录:注意:os.path.dirname()叠加一次向上找一次 如下
print(b)

b2 = os.path.dirname(b) #获取文件当前目录的上级目录,注意:os.path.dirname()叠加一次向上找一次
print(b2)

c = os.path.basename(a) #获取文件名称
print(c)
#输出
# H:/py/lib/ska/mk.py
# H:/py/lib/ska
# H:/py/lib
# mk.py
 用__file__获取模块路径,添加到解释器模块路径里
#!/usr/bin/env python
# -*- coding:utf8 -*-
import sys
import os
a = __file__    # __file__全局变量获取当前文件路径
print(a)
b = os.path.dirname(a) #获取文件当前目录
print(b)
c = "lib" #自定义文件目录名称
d = os.path.join(b,c) #将获取文件当前目录,与自定义文件目录名称,拼接成完整的路径
print(d)
print("\n")

sys.path.append(d) #将拼接好的路径,添加到解释器模块路径中

for i in sys.path:  #
    print(i)
#输出
# H:/py/index.py
# H:/py
# H:/py\lib
#
#
# H:\py
# C:\Users\admin\AppData\Local\Programs\Python\Python35\lib\site-packages\pip-8.1.2-py3.5.egg
# H:\py
# C:\Users\admin\AppData\Local\Programs\Python\Python35\python35.zip
# C:\Users\admin\AppData\Local\Programs\Python\Python35\DLLs
# C:\Users\admin\AppData\Local\Programs\Python\Python35\lib
# C:\Users\admin\AppData\Local\Programs\Python\Python35
# C:\Users\admin\AppData\Local\Programs\Python\Python35\lib\site-packages
# H:/py\lib
__package__ :获取导入文件的路径,多层目录以点分割,注意:对当前文件返回None

__cached__ :获取导入文件的缓存路径

__name__ 【重点】获取导入文件的路径加文件名称,路径以点分割,注意:获取当前文件返回__main__ 

__name__  全局变量写在入口文件里,只有执行入口文件时的返回值才是__main__  ,如果入口文件被导入到别的文件里,此时入口文件的__name__返回值就不在是__main__,而是如果文件的路径加入口文件名称,所以我们可以用__name__全局变量来防止别人盗链入口文件

__builtins__ 【重点】内置函数在这里面

3.内置模块

一:os模块,(文件和目录)用于提供系统级别的操作

二:sys模块:用于提供对解释器相关的操作

三:hashlib模块:用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

四:shutil模块:高级的 文件、文件夹、压缩包 处理模块(递归,文件复制等)

五:configparser模块:用于对特定的配置进行操作,

六:logging: 用于便捷记录日志且线程安全的模块

七:time & datetime 模块:时间相关的操作,时间有三种表示方式:

八:random模块:随机数
九:json 和 pickle模块
十:shelve模块:一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

os.getcwd()             获取当前工作目录,即当前Python脚本工作的目录路径
os.chdir("dirname")      改变当前脚本工作目录;相当于shell下cd
os.curdir               返回当前目录: ('.')
os.pardir               获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')       生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')       删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')       列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')    获取文件/目录信息
os.sep                  输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep               输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep              输出用于分割文件路径的字符串
os.name                  输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bashcommand")  运行shell命令,直接显示
os.environ               获取系统环境变量
os.path.abspath(path)      返回path规范化的绝对路径
os.path.split(path)         将path分割成目录和文件名二元组返回
os.path.dirname(path)      返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)    返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)        如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)        如果path是绝对路径,返回True
os.path.isfile(path)        如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)         如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[,...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)     返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)    返回path所指向的文件或者目录的最后修改时间
执行系统命令
os.system

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)         退出程序,正常退出时exit(0)
sys.version         获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称

#hashlib
hash = hashlib.md5()
hash.update(b'admin')
print(hash.hexdigest())
 
   
print(time.time()) #返回当前系统时间戳
print(time.ctime()) #输出Tue Jan 26 18:23:48 2016 ,当前系统时间
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将struct_time格式转成指定的字符串格式
print(time.strptime("2016-01-28","%Y-%m-%d") ) #将字符串格式转换成struct_time格式
current_time = datetime.datetime.now() #
print(current_time) #输出2016-01-26 19:04:30.335935
print(current_time.timetuple()) #返回struct_time格式
str_to_date = datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") #将字符串转换成日期格式
new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比现在加10天






你可能感兴趣的:(Python)