• 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")
    

    (本文完)

  • 相关阅读:
    37. Sudoku Solver(js)
    36. Valid Sudoku(js)
    35. Search Insert Position(js)
    34. Find First and Last Position of Element in Sorted Array(js)
    33. Search in Rotated Sorted Array(js)
    32. Longest Valid Parentheses(js)
    函数的柯里化
    俞敏洪:我和马云就差了8个字
    vue路由传值params和query的区别
    简述vuex的数据传递流程
  • 原文地址:https://www.cnblogs.com/junsircoding/p/15664978.html
Copyright © 2020-2023  润新知