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 os
import sys
dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
print 'running from', dirname
print '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=“http://blog.csdn.net/lanchunhui/article/details/50663977”, target="_blank">逻辑代数。
from os import urandom
def genkey(n):return urandom(n).decode('gbk', 'ignore')
def o(x):return ord(x) if isinstance(x, str) else x
def 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 模块相关推荐
- Python 标准库 —— os 路径(os.path)
<a href="http://blog.csdn.net/lanchunhui/article/details/50193327", target="_blank ...
- Python标准库queue模块原理浅析
Python标准库queue模块原理浅析 本文环境python3.5.2 queue模块的实现思路 作为一个线程安全的队列模块,该模块提供了线程安全的一个队列,该队列底层的实现基于Python线程th ...
- Python标准库threading模块Condition原理浅析
Python标准库threading模块Condition原理浅析 本文环境python3.5.2 threading模块Condition的实现思路 在Python的多线程实现过程中,在Linux平 ...
- Python标准库asyncio模块基本原理浅析
Python标准库asyncio模块基本原理浅析 本文环境python3.7.0 asyncio模块的实现思路 当前编程语言都开始在语言层面上,开始简化对异步程序的编程过程,其中Python中也开始了 ...
- python标准库os中用来列出_雨课堂答案在哪查,雨课堂2020试题及答案
常用的电镜有 和 两种,观察表面结构用 ,观察内部结构用 . [简答题]发票号码是否正确?如错误,请修改. [简答题]桥壳的功用有哪些? 在正常窦性心律的心电图上,同-导联连续出现两次或两次以上QRS ...
- python标准库os.path中用来_Python标准库os.path中用来判断指定文件是否存在的方法是_____________。...
Python标准库os.path中用来判断指定文件是否存在的方法是_____________. 答:exists() 通常,我们称脾为( ? ?) 答:后天之本 智慧职教: 生物与非生物的主要区别在于 ...
- golang标准库os模块-文件目录相关
golang标准库os模块-文件目录相关 本文视频教程:https://www.bilibili.com/video/BV1zR4y1t7Wj?from=search&seid=7990946 ...
- python标准库os的方法_Python中标准库OS的常用方法总结大全
前言 我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.在写一些系统脚本或者自动化运维脚本的时候经常会用到这个 os 库,所以这里做个整理, ...
- python标准库os.path中_Python零基础入门学习19:常用标准库之os.path子库
注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为3~5分钟. os库是Python标准库,包含几百个函数.它能处理与系统相关的常用路径操作.进程管理.环境参数等 ...
最新文章
- 为什么采用4~20mA的电流来传输模拟量?
- 招聘 | B站前端架构师(直播)
- android 常用方法集合
- mysql fio测试_MySQL Hardware--FIO压测
- 机器学习经典算法实践_服务机器学习算法的系统设计-不同环境下管道的最佳实践
- Xcode 7 App Transport Security has blocked a cleartext HTTP 报错解决办法
- 详解iPhone Tableview分批显示数据
- 多媒体计算机的信息类型,多媒体信息主要有几种类型
- flask pyecharts_利用 Flask 动态展示 Pyecharts 图表数据的几种方法
- #读取json某一节点数据_06596.2.0Hive处理JSON格式数据
- vb中查询mysql_vb数据库查询语句-vb中使用sql语句-vb读取sql语句的字段
- vue中index.html文件为什么可以使用模板语法
- GPS卫星星历与卫星历书的区别
- ISG2014 Writeups
- 三诺 n20g 微型计算机,入门级音箱再现经典 三诺N-20GIII评测
- 为什么int类型(16位)的下溢下限为-32768而上溢上限却是32767
- Go语言 defer 和 recover
- 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON9简易测试系统
- 2022-2028年全球与中国婴儿食品包装行业产销需求与投资预测分析
- 用服务器玩安卓虚拟机,Android手机上运行linux虚拟机
热门文章
- Hadoop—SequenceFile文件的数据格式(1)
- python多元回归因子选取_Python中的多元回归(带因子选择)
- Moreau Decomposition 和 共轭次梯度定理
- UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 130: invalid continuat
- linux php安装配置oci8模块
- 微信小程序wx.request请求用POST后台得不到传递数据
- jvm 虚拟机的组成部分
- Spring_Mybatis整合实现CRUD操作
- ORACLE 中NUMBER类型默认的精度和Scale问题
- Kafka API: TopicMetadata