Python 的模块和包

模块和包

在 Python 中,一个 py 文件就是一个模块,一个包含 __init__.py 文件的目录就是一个包。

如果在当前模块执行它自己的代码,它的 __name__ 就是 __main__,如果它是被导入执行的,他的 __name__ 就是导入方的文件名。
所以在测试当前模块时,通常写 if __name__ == "__main__"

模块搜索路径

在像这样导包的时候 from pk.a.b import c,Python 解释器搜索包的方法是这样:

  • 当前目录是否有 pk 这个包
  • Python 内置模块是否有 pk 这个包
  • 当前虚拟环境是否安装了 pk 这个包,当前虚拟环境路径都可以用 sys.path 来查看,它记录了当前环境的所有环境变量路径。

变量权限

Python 通过在变量前加下划线 _ 来将变量区分公开或私有。

变量形式 权限 说明
num 公开 自己随便定义
__num__ 公开 特殊变量,自定义一般不使用
_num 私有 不应该被直接引用

私有变量技术上仍可以访问,这是一种约定俗成的写法。

读取脚本参数

如果写好了一个脚本 manage.py,运行它一般要执行命令 python manage.py
大部分的脚本要支持添加参数,比如这样:python manage.py -i arg1 -u arg2
要读取参数,需要用到 sys.argv

manage.py 内容为这样:

import sys

args = sys.argv
print(args)

运行:

python manage.py -i arg1 -u arg2
['manage.py', '-i', 'arg1', '-u', 'arg2']

读取系统信息

系统类型

import os
print(os.name) # posix 是类unix系统,nt为windows系统

系统详细信息

import os
print(os.uname())
"""
posix.uname_result(sysname='Linux', nodename='xxx', release='xxx', version='xxx', machine='x86_64')
"""

系统环境变量

import os
print(os.environ) # 包括 PATH 等等环境变量,字典格式
"""
environ({'PATH': 'xx/xx/xx'})
"""
print(os.environ.get("PATH")) # xx/xx/xx

创建文件或目录

获取当前目录绝对路径

curt_abs = os.path.abspath(".")
print(curt_abs) # /root/xxx

拼接目录

new_path = os.path.join(curt_abs, "new_path")
print(new_path) # /root/note/new_path

创建目录

os.mkdir(new_path)

删除目录

os.rmdir(new_path)

分割目录路径

# new_path = "/root/note/new_path"
path_sp = os.path.split(new_path)
print(path_sp) # ('/root/note', 'new_path')

获取文件扩展名

# new_path = "/root/note/new_path.txt"
file_msg = os.path.splitext(new_path)
print(file_msg) # ('/root/note/new_path', '.txt')

文件重命名

os.rename("a.txt", "b.txt") # 当前目录下

删除文件

os.remove("c.txt")

复制文件

from shutil import copyfile
copyfile("a.txt", "d.txt")

(本文完)

原文地址:https://www.cnblogs.com/junsircoding/p/15664978.html