在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 模块相关推荐

  1. Python 标准库 —— os 路径(os.path)

    <a href="http://blog.csdn.net/lanchunhui/article/details/50193327", target="_blank ...

  2. Python标准库queue模块原理浅析

    Python标准库queue模块原理浅析 本文环境python3.5.2 queue模块的实现思路 作为一个线程安全的队列模块,该模块提供了线程安全的一个队列,该队列底层的实现基于Python线程th ...

  3. Python标准库threading模块Condition原理浅析

    Python标准库threading模块Condition原理浅析 本文环境python3.5.2 threading模块Condition的实现思路 在Python的多线程实现过程中,在Linux平 ...

  4. Python标准库asyncio模块基本原理浅析

    Python标准库asyncio模块基本原理浅析 本文环境python3.7.0 asyncio模块的实现思路 当前编程语言都开始在语言层面上,开始简化对异步程序的编程过程,其中Python中也开始了 ...

  5. python标准库os中用来列出_雨课堂答案在哪查,雨课堂2020试题及答案

    常用的电镜有 和 两种,观察表面结构用 ,观察内部结构用 . [简答题]发票号码是否正确?如错误,请修改. [简答题]桥壳的功用有哪些? 在正常窦性心律的心电图上,同-导联连续出现两次或两次以上QRS ...

  6. python标准库os.path中用来_Python标准库os.path中用来判断指定文件是否存在的方法是_____________。...

    Python标准库os.path中用来判断指定文件是否存在的方法是_____________. 答:exists() 通常,我们称脾为( ? ?) 答:后天之本 智慧职教: 生物与非生物的主要区别在于 ...

  7. golang标准库os模块-文件目录相关

    golang标准库os模块-文件目录相关 本文视频教程:https://www.bilibili.com/video/BV1zR4y1t7Wj?from=search&seid=7990946 ...

  8. python标准库os的方法_Python中标准库OS的常用方法总结大全

    前言 我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.在写一些系统脚本或者自动化运维脚本的时候经常会用到这个 os 库,所以这里做个整理, ...

  9. python标准库os.path中_Python零基础入门学习19:常用标准库之os.path子库

    注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为3~5分钟. os库是Python标准库,包含几百个函数.它能处理与系统相关的常用路径操作.进程管理.环境参数等 ...

最新文章

  1. 为什么采用4~20mA的电流来传输模拟量?
  2. 招聘 | B站前端架构师(直播)
  3. android 常用方法集合
  4. mysql fio测试_MySQL Hardware--FIO压测
  5. 机器学习经典算法实践_服务机器学习算法的系统设计-不同环境下管道的最佳实践
  6. Xcode 7 App Transport Security has blocked a cleartext HTTP 报错解决办法
  7. 详解iPhone Tableview分批显示数据
  8. 多媒体计算机的信息类型,多媒体信息主要有几种类型
  9. flask pyecharts_利用 Flask 动态展示 Pyecharts 图表数据的几种方法
  10. #读取json某一节点数据_06596.2.0Hive处理JSON格式数据
  11. vb中查询mysql_vb数据库查询语句-vb中使用sql语句-vb读取sql语句的字段
  12. vue中index.html文件为什么可以使用模板语法
  13. GPS卫星星历与卫星历书的区别
  14. ISG2014 Writeups
  15. 三诺 n20g 微型计算机,入门级音箱再现经典 三诺N-20GIII评测
  16. 为什么int类型(16位)的下溢下限为-32768而上溢上限却是32767
  17. Go语言 defer 和 recover
  18. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON9简易测试系统
  19. 2022-2028年全球与中国婴儿食品包装行业产销需求与投资预测分析
  20. 用服务器玩安卓虚拟机,Android手机上运行linux虚拟机

热门文章

  1. Hadoop—SequenceFile文件的数据格式(1)
  2. python多元回归因子选取_Python中的多元回归(带因子选择)
  3. Moreau Decomposition 和 共轭次梯度定理
  4. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 130: invalid continuat
  5. linux php安装配置oci8模块
  6. 微信小程序wx.request请求用POST后台得不到传递数据
  7. jvm 虚拟机的组成部分
  8. Spring_Mybatis整合实现CRUD操作
  9. ORACLE 中NUMBER类型默认的精度和Scale问题
  10. Kafka API: TopicMetadata