Python实用用法
Python实用用法
路径操作:
Python中常用路径操作库包括os.path 和 pathlib.Path,都是 Python 中用于处理文件和目录路径的模块,但它们的设计哲学和使用方式存在显著区别:
os.path:- 是一个基于字符串的操作库,提供了许多函数来处理路径名,如连接路径、拆分路径、判断是否为绝对路径、获取目录/文件名等
- 以过程式风格编写,所有操作返回的是字符串类型结果,需要手动拼接和管理路径对象,不支持跨平台的路径操作
pathlib.Path:- 是 Python 3.4 起引入的一个面向对象的库,提供了
Path类,你可以创建 Path 对象表示文件或目录路径,通过类的方法进行各种路径操作 Path对象可以方便地进行链式调用,比如Path("/root").joinpath("dir", "file.txt"),这在代码可读性和简洁性上优于os.path- 内置了对不同操作系统的支持,可以自动处理路径分隔符(Windows 上的反斜杠
\或 Unix-like 系统上的正斜杠/)
- 是 Python 3.4 起引入的一个面向对象的库,提供了
总之pathlib.Path的风格更加偏向 Pythonic,是更加推荐的一种方法
Pathlib的常用用法:
-
Path(path_string):这是最常用的,用于初始化一个Path对象 -
.joinpath(*other)或/运算符:连接路径组件形成新的路径 -
.absolute():获取绝对路径版本 -
.parent、.name、.stem和.suffix:用于获取路径的组成部分 -
.exists():判断路径指向的文件或目录是否存在 -
.is_file()和.is_dir():分别判断是否为文件或目录 -
.read_text(encoding=None, errors=None):以文本模式读取文件内容 -
.write_text(text, encoding=None, errors=None):将文本内容写入文件 -
.mkdir():创建目录 -
.iterdir():遍历当前目录中的所有子目录和文件
关于对象的常用操作:
-
dir():返回一个包含对象所有属性名(包括方法)的列表。这对于查看一个对象的所有可用属性非常有用 -
setattr(obj, name, value):设置对象obj中名为name的属性为value -
delattr(obj, name):删除对象obj中名为name的属性 -
hasattr():检查对象是否具有指定名称的属性 -
id():返回对象的唯一标识符(内存地址),通常用来比较两个对象是否是同一个实例 -
vars()返回对象的属性和属性值的字典表示。 当传入一个对象作为参数时,vars(obj)会返回该对象的__dict__属性,如果不提供参数调用则返回当前作用域局部变量和全局变量组成的字典 -
type():返回对象的类型(即类)
Python 动态导入对象
importlib.import_module() 是 Python 标准库 importlib 模块中提供的一个函数,它用于在运行时动态地导入模块。这个函数允许你根据字符串参数来加载模块,而无需在程序开始时就静态地使用 import 语句导入。
函数签名如下:
1 | |
name:必填参数,是一个字符串,指定了要导入的模块的名称。它可以是绝对模块名(例如'os')或相对模块名(例如'package.submodule'),如果提供了package参数,则可以是相对于该包的模块名package:可选参数,默认为None,如果提供了该参数,那么name将被解释为相对于package指定包的相对模块名
当需要在运行时根据条件或用户输入动态决定导入哪个模块时,importlib.import_module() 非常有用。函数返回的是所导入模块的实际对象,这样就可以直接访问和调用模块中的属性和函数了
注:导入的搜索域是由 sys.path 表示
1 | |