模块 os:系统功能

os 提供了和当前操作系统有关的一些功能,目前只支持环境变量

该模块在 ambot-script engine v1.3 系中 v1.3.8 或更高版本、v1.4 系中 v1.4.0-rc.16 或更高版本引入

环境变量

函数

os.getenv(name: str) → <str/None>

获取当前系统中所有的环境变量

os.setenv(name: str, value: str)

设定环境变量

os.listenv() -> [str]

获取当前系统中所有的环境变量

示例

# 假定已经设定了 AA=1, BB=2, CC=3, DD= 几个环境变量
assert(os.getenv("AA") == "1")
assert(os.getenv("BB") == "2")
assert(os.getenv("CC") == "3")
assert(os.getenv("DD") == "")
assert(os.getenv("EE") == None)

os.putenv("BB", "22")
assert(os.getenv("BB") == "22")

def to_dict(l):
    d = {}
    for e in l:
        i = e.find("=")
        if i != -1:
            d[e[:i]] = e[i+1:]
    return d

all = to_dict(os.listenv())
assert(all["AA"] == "1")
assert(all["BB"] == "22")
assert(all["CC"] == "3")
assert(all["DD"] == "")
assert(all.get("EE") == None)

result = run("env | grep ^BB=")
assert(result)
assert(str(result.stdout).strip() == "BB=22")

os.path

os.path.join(...) -> str

将传递的参数进行 path join,返回 join 后的结果

assert(os.path.join("a") == "a")
assert(os.path.join("a", "b") == "a/b")
assert(os.path.join("a", "b/", "c") == "a/b/c")
assert(os.path.join("a", "/b", "c") == "/b/c")

文件功能

os.readfile(filename: str) -> bytes

当前 filename 仅支持绝对路径

从系统中读取文件内容,返回文件内容的 bytes 对象

os.writefile(filename: str, data: bytes, perm: int = 0644)

当前 filename 仅支持绝对路径

将 data 写入文件,如果文件不存在,利用 perm 创建新文件(默认权限 0644)