zoukankan      html  css  js  c++  java
  • 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")
    

    (本文完)

  • 相关阅读:
    02数值类型
    01开班第一节
    oracle 课堂笔记
    错题整理
    多线程下的单例模式
    线程的同步和异步
    九大内置对象!!!
    jsp前三章测试
    Jav开发中的23种设计模式详解(转载)
    java IO 学习笔记
  • 原文地址:https://www.cnblogs.com/junsircoding/p/15664978.html
Copyright © 2011-2022 走看看