- os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口
- sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境
运行信息
- 系统平台sys.platform
- 解释器版本信息sys.version sys.version_info
- 当前Unicode实现所使用的默认字符串编码名称sys.getdefaultencoding()
- 命令行传递参数sys.argv
- sys.getrefcount()对象引用计数,返回的计数通常比预期的多一,因为它包括了作为getrefcount()参数的这一次临时引用
- sys.modules将模块名称映射到已加载的模块。可以操作该字典来强制重新加载模块,或是实现其他技巧。但是,替换的字典不一定会按预期工作,并且从字典中删除必要的项目可能会导致Python崩溃
- sys.path字符串组成的列表,用于指定模块的搜索路径。初始化自环境变量PYTHONPATH,再加上一条与安装有关的默认路径
- 运行环境变量os.environ
进程管理
- 模拟传统的UNIX函数发信号给进程(UNIX平台上有效)os.kill(os.getpid(), signal.SIGILL)
- os.fork()无法在Windows系统中使用,父进程中os.fork()返回子进程pid,子进程中os.fork()返回0
- os.system通过fork一个子进程,然后该子进程执行命令,阻塞等待子进程结束,返回命令执行结果的返回值
- os.popen创建一个管道,通过fork一个子进程,然后该子进程执行命令
文件操作
-
拼接路径os.path.join(dir, path)
-
新建文件夹os.makedirs(os.path.dirname(file_full_path))
-
删除文件夹os.rmdir(os.path.dirname(file_full_path))
-
判断文件夹存在os.path.exists(os.path.dirname(file_full_path))
-
目录文件列表os.listdir(os.path.dirname(file_full_path))
-
判断资源类型(是否文件)os.path.isfile(file_full_path)
-
删除文件os.remove(file_full_path)
-
移动(重命名)os.rename(src_file_full_path, des_file_full_path)
ini文件解析
- configparser模块
import configparser
def doini():
filename = "test.ini"
# 加载ini
iniFile = configparser.ConfigParser()
iniFile.read(filename)
# 添加或更新节点
section, key, value = "request", "timeout", "30"
if not iniFile.has_section(section):
iniFile.add_section(section)
iniFile.set(section, key, value)
# 删除节点
section, key, value = "request", "retry", "5"
if iniFile.has_section(section):
if iniFile.has_option(section, key):
iniFile.remove_option(section, key)
if len(iniFile.options(section)) == 0:
iniFile.remove_section(section)
# 回写ini
iniFile.write(open(filename, "w"))
if __name__ == "__main__":
doini()
注册表操作
- winreg模块
import winreg
def doreg(regList):
# root
root, path = winreg.HKEY_CURRENT_USER, r"ttt\www"
reg = winreg.CreateKey(root, path)
try:
# 添加或更新
name, value = "host", "sss"
winreg.SetValueEx(reg, name, 0, winreg.REG_SZ, value)
# 删除
name = "port"
for i in range(0, winreg.QueryInfoKey(reg)[1]):
if (winreg.EnumValue(reg, i)[0] == name):
winreg.DeleteValue(reg, name)
break
except Exception as e:
raise e
finally:
winreg.CloseKey(reg)