美文网首页
慎用python os库

慎用python os库

作者: SimonChen | 来源:发表于2017-07-18 15:02 被阅读0次

你猜不到的答案

  • 第一行代码,正常情况下不会有什么问题,可以一旦当这个文件太大,就会引发OOM(out of memory)错误,导致cp那个命令执行失败,下面这句话画重点,这个错误不会抛异常、不会抛异常、不会抛异常。(重要的事情说三遍)
  • 第二行代码,正常情况下也不会有什么问题,可以当你a b两个目录不在同一个磁盘或者是nfs这种共享目录的话,就会导致a文件在move之后不会被删除。

这是为什么了

  • os.system 这个函数在linux环境下,只是封装了c语言的system这个函数,并且没做任何修改,所以,system函数返回什么,os.system就返回什么,而正常c语言system这个函数是启动的子进程被杀是不会发生异常的。

  • os.rename 这个函数在源文件和目的文件在一个硬盘,不会有问题,但是当不同磁盘间移动时,就会出问题,用官方的话说

    The operation may fail on some Unix flavors if src and dst are on different filesystems
    

但是一旦成功,就是个原子操作,就是说,可mv命令一致了。

解决方案

  • os.system 可以是用subprocess模块代替
  • os.rename 使用shutil模块代替,shutil提供了文件处理相关的函数

最后说一句

  • os库里的好多函数都已经过期了,推荐大家在以后的编码中,尽量不要使用os库里的函数,万一掉进去,都是巨深无比的坑。

点一下给你更多,你的点击,将给我更多的分享动力。(其实就是的我博客太冷清了,惨)

相关文章

  • 慎用python os库

    你猜不到的答案 第一行代码,正常情况下不会有什么问题,可以一旦当这个文件太大,就会引发OOM(out of mem...

  • OS Python

    os[operating system][Python 标准库] 路径 输出运行路径 os.getcwd() 路径...

  • (三)python常用标准库

    python常用标准库 python标准库常见模块 操作系统相关:os 时间与日期:time、datetime 科...

  • ArangoDB、Neo4j、OrientDB单机性能比较

    [TOC] 系统信息 图数据库版本信息 OS&库信息 OS:Ubuntu 16.04 虚拟机VM12 python...

  • python文件IO操作

    文件IO操作 1. 文件操作 和操作系统交互,python标准库:os、os.path 提示:dir(os...

  • OS库的使用

    OS库提供通用的,基本的操作系统交互功能。 -OS库是Python标准库,包含几百个函数-常用路径操作,进程管理,...

  • 39-os模块

    OS 模块导入方式: import os os模块是Python标准库中的一个用于访问操作系统相关功能的模块,os...

  • Python编写自动备份MySQL数据库脚本(外接钉钉消息通知)

    分享一个用Python实现的备份MySQL数据库脚本,实现原理是利用Python内置的os库,调用mysql数据库...

  • 进阶篇3-函数第二节

    Python标准库os.path包、glob包使用实例 python 中的filter()、map()、reduc...

  • 12 python中模块和包如何导入

    1 模块的三种类型 python标准库python自带的标准库,比如常用的有os,sys,re,logging等 ...

网友评论

      本文标题:慎用python os库

      本文链接:https://www.haomeiwen.com/subject/dpjqkxtx.html