Python常用函数使用总结

Python常用函数

Python hasattr()函数

hasattr() 函数用来判断某个类实例对象是否包含指定名称的属性或方法。该函数的语法格式如下:

hasattr(obj, name)

其中 obj 指的是某个类的实例对象,name 表示指定的属性名或方法名。同时,该函数会将判断的结果(True 或者 False)作为返回值反馈回来。

例如:

class CLanguage:
    def __init__ (self):
        self.name = "百度一下"
        self.add = "wwww.baidu.com"
    def say(self):
        print("我正在学Python")

clangs = CLanguage()
print(hasattr(clangs,"name"))
print(hasattr(clangs,"add"))
print(hasattr(clangs,"say"))

程序输出如下:

True
True
True

显然,无论是属性名还是方法名,都在hasattr()函数的匹配范围内。因此,我们只能通过该函数判断实例对象是否包含该名称的属性或方法,但不能精确判断,该名称代表的是属性还是方法。

Python getattr() 函数

getattr() 函数获取某个类实例对象中指定属性的值。没错,和hasattr()函数不同,该函数只会从类对象包含的所有属性中进行查找。

getattr() 函数的语法格式如下:

getattr(obj, name[, default])

其中,obj 表示指定的类实例对象,name 表示指定的属性名,而 default 是可选参数,用于设定该函数的默认返回值,即当函数查找失败时,如果不指定 default 参数,则程序将直接报 AttributeError 错误,反之该函数将返回default指定的值。

例如:

class CLanguage:
    def __init__ (self):
        self.name = "百度一下"
        self.add = "www.baidu.com"
    def say(self):
        print("我正在学Python")

clangs = CLanguage()
print(getattr(clangs,"name"))
print(getattr(clangs,"add"))
print(getattr(clangs,"say"))
print(getattr(clangs,"display",'nodisplay'))

程序执行结果为:

百度一下
www.baidu.com
<bound method CLanguage.say of <__main__.CLanguage object at 0x000001BC2E5B6D90>>
nodisplay

可以看到,对于类中已有的属性,getattr() 会返回它们的值,而如果该名称为方法名,则返回该方法的状态信息;反之,如果该s名称不为类对象所有,要么返回默认的参数,要么程序报AttributeError错误。

Python setattr()函数

setattr() 函数的功能相对比较复杂,它最基础的功能是修改类实例对象中的属性值。其次,它还可以实现为实例对象动态添加属性或者方法。

setattr() 函数的语法格式如下:

setattr(obj, name, value)

首先,下面例子演示如何通过该函数修改某个类实例对象的属性值:

class CLanguage:
    def __init__ (self):
        self.name = "百度一下"
        self.add = "www.baidu.com"
    def say(self):
        print("我正在学Python")
clangs = CLanguage()
print(clangs.name)
print(clangs.add)
setattr(clangs,"name","必应")
setattr(clangs,"add","www.bing.com")
print(clangs.name)
print(clangs.add)

程序运行结果为:

百度一下
www.baidu.com
必应
www.bing.com

甚至利用 setattr() 函数,还可以将类属性修改为一个类方法,同样也可以将类方法修改成一个类属性。例如:

def say(self):
    print("我正在学Python")

class CLanguage:
    def __init__ (self):
        self.name = "百度一下"
        self.add = "www.baidu.com"

clangs = CLanguage()
print(clangs.name)
print(clangs.add)
setattr(clangs,"name",say)
clangs.name(clangs)

程序运行结果为:

百度一下
www.baidu.com
我正在学Python

显然,通过修改 name 属性的值为 say(这是一个外部定义的函数),原来的 name 属性就变成了一个 name() 方法。

使用setattr()函数对实例对象中执行名称的属性或方法进行修改时,如果该名称查找失败,Python 解释器不会报错,而是会给该实例对象动态添加一个指定名称的属性或方法。例如:

def say(self):
    print("我正在学Python")

class CLanguage:
    pass

clangs = CLanguage()
setattr(clangs,"name","百度一下")
setattr(clangs,"say",say)
print(clangs.name)
clangs.say(clangs)

程序执行结果为:

百度一下
我正在学Python

可以看到,虽然 CLanguage 为空类,但通过setattr()函数,我们为 clangs 对象动态添加了一个 name 属性和一个 say() 方法。

Python os.path模块常见函数用法

方法 说明
os.path.abspath(path) 返回 path 的绝对路径。
os.path.basename(path) 获取 path 路径的基本名称,即path末尾到最后一个斜杠的位置之间的字符串。
os.path.commonprefix(list) 返回 list(多个路径)中,所有 path 共有的最长的路径。
os.path.dirname(path) 返回 path 路径中的目录部分。
os.path.exists(path) 判断 path 对应的文件是否存在,如果存在,返回 True;反之,返回 False。和 lexists() 的区别在于,exists()会自动判断失效的文件链接(类似 Windows 系统中文件的快捷方式),而 lexists() 却不会。
os.path.lexists(path) 判断路径是否存在,如果存在,则返回 True;反之,返回 False
os.path.expanduser(path) path 中包含的 “~” 和 “~user” 转换成用户目录。
os.path.expandvars(path) 根据环境变量的值替换 path 中包含的 “ n a m e " 和 " name" 和 " name""{name}”。
os.path.getatime(path) 返回 path 所指文件的最近访问时间(浮点型秒数)。
os.path.getmtime(path) 返回文件的最近修改时间(单位为秒)。
os.path.getctime(path) 返回文件的创建时间(单位为秒,自 1970 年 1 月 1 日起(又称 Unix 时间))。
os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误。
os.path.isabs(path) 判断是否为绝对路径。
os.path.isfile(path) 判断路径是否为文件。
os.path.isdir(path) 判断路径是否为目录。
os.path.islink(path) 判断路径是否为链接文件(类似 Windows 系统中的快捷方式)。
os.path.ismount(path) 判断路径是否为挂载点。
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径。
os.path.normcase(path) 转换 path 的大小写和斜杠。
os.path.normpath(path) 规范 path 字符串形式。
os.path.realpath(path) 返回 path 的真实路径。
os.path.relpath(path[, start]) start 开始计算相对路径。
os.path.samefile(path1, path2) 判断目录或文件是否相同。
os.path.sameopenfile(fp1, fp2) 判断 fp1 fp2是否指向同一文件。
os.path.samestat(stat1, stat2) 判断 stat1 stat2 是否指向同一个文件。
os.path.split(path) 把路径分割成 dirname basename,返回一个元组。
os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组。
os.path.splitext(path) 分割路径,返回路径名和文件扩展名的元组。
os.path.splitunc(path) 把路径分割为加载点与文件。
os.path.walk(path, visit, arg) 遍历path,进入每个目录都调用 visit 函数,visit 函数必须有 3 个参数(arg, dirname, names)dirname 表示当前目录的目录名,names 代表当前目录下的所有文件名,args 则为 walk 的第三个参数。
os.path.supports_unicode_filenames 设置是否可以将任意 Unicode 字符串用作文件名。

Python os.environ模块环境变量详解

在 python 中通过 os.environ 可以获取有关系统的各种信息

1、简介

通过 os.environ 获取环境变量,什么是环境变量呢?环境变量是程序和操作系统之间的通信方式。有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过 os.environ.get() 取出来就行了。这样开发人员本机测试的时候用的是自己本机的一套密码,生产环境部署的时候,用的是公司的公共账号和密码,这样就能增加安全性。os.environ 是一个字典,是环境变量的字典。例如“HOME” 是这个字典里的一个键,如果有这个键,返回对应的值,如果没有,则返回 None

2、key字段详解

os.environ.keys() 主目录下所有的key如下所示:

>>>import os
>>>os.environ.keys()

KeysView(environ({
    
    'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Administrator\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-N5CU52O', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'CONDA_DEFAULT_ENV': 'base', 'CONDA_PREFIX': 'D:\\Anaconda', 'CONDA_PROMPT_MODIFIER': '(base) ', 'CONDA_SHLVL': '1', 'DATAGRIP': 'D:\\DataGrip 2022.3\\bin;', 'DATASPELL': 'D:\\DataSpell 2022.3\\bin;', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\Administrator', 'IDEA_INITIAL_DIRECTORY': 'D:\\PyCharm 2022.3\\bin', 'LANG': 'en_US.UTF-8', 'LANGUAGE': '', 'LC_ALL': 'en_US.UTF-8', 'LOCALAPPDATA': 'C:\\Users\\Administrator\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-N5CU52O', 'NUMBER_OF_PROCESSORS': '12', 'ONEDRIVE': 'C:\\Users\\Administrator\\OneDrive', 'OS': 'Windows_NT', 'PATH': 

3、os.environ.get() 用法

os.environ 是一个字典,是环境变量的字典,可以通过 get 方法获取键对应的值(注意 os.environ 的类型并不是 <class ‘dict’>,不是所有字典的函数都能用)

os.environ.get() 是 python 中 os 模块获取环境变量的一个方法,如果有这个键,返回对应的值,如果没有,则返回 None

例如:

import os
print(os.environ.get("HOME")) # 返回None

也可以设置默认值,当键存在时返回对应的值,不存在时,返回默认值

print(os.environ.get("HOME", "default"))	#环境变量HOME不存在,返回	default

4、环境变量的用法

设置系统环境变量

os.environ['环境变量名称']='环境变量值' # 其中key和value均为string类型
os.putenv('环境变量名称', '环境变量值')
os.environ.setdefault('环境变量名称', '环境变量值')

修改系统环境变量

os.environ['环境变量名称']='新环境变量值'

获取系统环境变量

os.environ['环境变量名称']
os.getenv('环境变量名称')
os.environ.get('环境变量名称', '默认值')	#默认值可给可不给,环境变量不存在返回默认值

删除系统环境变量

del os.environ['环境变量名称']
del(os.environ['环境变量名称'])

判断系统环境变量是否存在

'环境变量值' in os.environ   # 存在返回 True,不存在返回 False

猜你喜欢

转载自blog.csdn.net/qq_43300880/article/details/128394865