python模块 os&sys&subprocess&hashlib模块
Posted zt0903
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模块 os&sys&subprocess&hashlib模块相关的知识,希望对你有一定的参考价值。
os模块
# os模块可根据带不带path分为两类 # 不带path print(os.getcwd()) # 得到当前工作目录 print(os.name) # 指定你正在使用的操作系统,windows为nt,linux为“posix" os.shell() # 运行shell命令 print(os.environ) # 返回操作系统所有的环境变量 print(os.getenv("home")) # 读取指定环境变量的值 os.environ.setdefault("home","c:windows") print(os.linesep) # 给出当前系统的行中止符,Windows使用‘ ‘,Linux and MAC使用‘ ‘ print(os.listdir()) # 返回指定目录下的所有文件和目录名,默认当前目录下。 os.remove() # 删除指定的文件 os.mkdir() # 创建一个目录 os.makedirs(r"d:1122") # 创建多级目录 os.removedirs(r"d:1122") # 删除多级目录,目录不为空时报错,删除后上级目录为空的话继续删除 os.rename("old","new") print(os.stat("time模块.py")) #获取文件属性 os.chmod() # 修改文件权限与时间戳 os.chdir(dirname) # 修改工作目录到dirname os.get_terminal_size() # 获取当前终端的大小 os.kill(10884,signal.SIGKILL) # 杀死进程 # 带path os.path.abspath() # 获取绝对路径 os.path.dirname() # 获取路径名 os.path.basename() # 获取文件名 os.path.getsize() # 获取文件大小 os.path.split() # 获取一个路径的目录名与文件名 e.g os.path.split(‘/home/swaroop/byte/code/poem.txt‘) 结果:(‘/home/swaroop/byte/code‘, ‘poem.txt‘) os.path.splitext() # 分离扩展名 e.g os.path.splitext(‘/usr/local/test.py‘) 结果:(‘/usr/local/test‘, ‘.py‘) os.path.join(dir,filename) #结合目录名与文件名 os.path.isfile() # 判断是否是一个文件 os.path.isdir() # 判断是否是一个目录 os.path.isabs() # 判断是否是绝对路径 os.path.exists() # 判断给出的路径是否真的存在
sys模块
sys.argv # 命令行参数List,第一个元素是程序本身路径 sys.exit(n) # 退出程序,正常退出时exit(0) sys.version # 获取Python解释程序的版本信息 sys.maxint # 最大的Int值 sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform # 返回操作系统平台名称 sys.stdout.write(‘please:‘) # 标准输出 , 引出进度条的例子, 注,在py3上不行,可以用print代替 val = sys.stdin.readline()[:-1] # 标准输入 sys.getrecursionlimit() # 获取最大递归层数 sys.setrecursionlimit(1200) # 设置最大递归层数 sys.getdefaultencoding() # 获取解释器默认编码 sys.getfilesystemencoding # 获取内存数据存到文件里的默认编码
subprocess模块
hashlib模块
# 用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib c = hashlib.sha1()c.update("admin".encode("utf8"))print(s.hexdigest())print(s.digest()) # 以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。 s = hashlib.md5(bytes("451sdhjshdjs",encoding="utf-8")) s.update(bytes("admin", encoding="utf-8")) print(s.hexdigest()) # python内置还有一个 hmac 模块,它内部对我们创建 key 和 内容 进行进一步的处理然后再加密 import hmac h = hmac.new(bytes("shsh55", encoding="utf-8")) h.update(bytes("admin", encoding="utf-8")) print(h.hexdigest())