python模块 os&sys&subprocess&hashlib模块

时间:2022-05-25 03:57:53

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使用'\r\n',Linux and MAC使用'\n'
print(os.listdir()) # 返回指定目录下的所有文件和目录名,默认当前目录下。
os.remove() # 删除指定的文件
os.mkdir() # 创建一个目录
os.makedirs(r"d:\11\22") # 创建多级目录
os.removedirs(r"d:\11\22") # 删除多级目录,目录不为空时报错,删除后上级目录为空的话继续删除
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())