失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python 标准库 —— os 模块

Python 标准库 —— os 模块

时间:2020-08-27 13:21:40

相关推荐

Python 标准库 —— os 模块

在python控制台(也即命令行界面)下,直接使用print __file__会导致name __file__ is not defined,因为这时(python命令行环境)没有在任何一个脚本(.py)文件下执行,自然没有__file__的定义了。

判断当前运行的操作系统:os.name ‘nt’:windows‘posix’:Linux(Mac)在 sys 包下,则有对应的sys.platform

1. os.makedirs vs os.mkdir

makedirs():将创建所有的中间路径(intermediate directories),即使这些中间目录并不存在(等同于bash环境下的:mkdir-p)。

mkdir()用来创建一个单独的子目录,如果在参数中指定中间目录,将会抛出异常。

FileNotFoundError: [WinError 3] 系统找不到指定的路径。: './1/2/3/4'

两者均可创建单独的叶子目录:

os.mkdir(‘dirA’)os.mkdir(‘dirB’)

makedirs可以用来创建分支:

os.mkdir('dirA/dirB'):抛异常,如果dirA不存在的话os.makedirs('dirA/dirB'):成功

和bash环境下的mkdir -p所不同的一点是,两者都会创建失败如果叶子目录,本身即已存在。

2. 当前执行脚本的上层路径及上上层路径

# 上层路径print os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))# 上上层路径print os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))

3. os.path.split()[0]/[1] 与 os.path.dirname()/basename()

os.path.split(__file__)# 返回的是一个元组类型,# 有两个元素构成,分别是路径信息以及文件名

print os.path.split(__file__)[0], os.path.dirname(__file__) print os.path.split(__file__)[0], os.path.basename(__file__)

4. sys.argv[0]与_file_

获取主执行文件的最佳方法是sys.argv[0],它可能是一个相对路径,所以再取一次绝对路径是一个双保险的做法:

import osimport sysdirname, filename = os.path.split(os.path.abspath(sys.argv[0]))print 'running from', dirnameprint 'file is', filename

5. make_dir(_dir):

def make_dir(_dir):if os.path.exists(_dir):return Truetry:os.makedirs(_dir)return Trueexcept:return False

6. os.urandom(n) 的使用

Return a string of n random bytes suitable for cryptographic use.

随机产生n个字节的字符串,可以作为随机加密key使用~

我们就简单举一个它在异或密码中的应用,详见 <a href=“/lanchunhui/article/details/50663977”, target="_blank">逻辑代数。

from os import urandomdef genkey(n):return urandom(n).decode('gbk', 'ignore')def o(x):return ord(x) if isinstance(x, str) else xdef xor_strings(s1, s2):return ''.join(chr(o(i)^o(j)) for i, j in zip(s1, s2))if __name__ == '__main__':message = "This is a secret message"key = genkey(len(message))crypted = xor_strings(message, key)print(xor_strings(crypted, key))

如果觉得《Python 标准库 —— os 模块》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。