Python中os和shutil模块实用方法集锦

2014-06-26  来源:本站原创  分类:Python  人气:2 

这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下

# os 模块

os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\'
os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix'
os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径
os.getenv() 获取一个环境变量,如果没有返回none
os.putenv(key, value) 设置一个环境变量值
os.listdir(path) 返回指定目录下的所有文件和目录名
os.remove(path) 函数用来删除一个文件
os.system(command) 函数用来运行shell命令
os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用 '\r\n',Linux使用 '\n' 而Mac使用 '\r'
os.path.split(path)  函数返回一个路径的目录名和文件名
os.path.isfile() 和os.path.isdir()函数分别检验给出的路径是一个文件还是目录
os.path.exists() 函数用来检验给出的路径是否真地存在
os.curdir  返回当前目录 ('.')
os.mkdir(path) 创建一个目录
os.makedirs(path) 递归的创建目录
os.chdir(dirname) 改变工作目录到dirname
os.path.getsize(name) 获得文件大小,如果name是目录返回0L
os.path.abspath(name) 获得绝对路径
os.path.normpath(path) 规范path字符串形式
os.path.splitext()  分离文件名与扩展名
os.path.join(path,name) 连接目录与文件名或目录
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
os.walk(top,topdown=True,onerror=None)  遍历迭代目录
os.rename(src, dst)  重命名file或者directory src到dst 如果dst是一个存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一个file, 如果用户有权限的话,它将被安静的替换. 操作将会失败在某些Unix 中如果src和dst在不同的文件系统中. 如果成功, 这命名操作将会是一个原子操作 (这是POSIX 需要). 在 Windows上, 如果dst已经存在, 将抛出OSError,即使它是一个文件. 在unix,Windows中有效。
os.renames(old, new) 递归重命名文件夹或者文件。像rename()
# shutil 模块
shutil.copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉
shutil.move( src, dst)  移动文件或重命名
shutil.copymode( src, dst) 只是会复制其权限其他的东西是不会被复制的
shutil.copystat( src, dst) 复制权限、最后访问时间、最后修改时间
shutil.copy( src, dst)  复制一个文件到一个文件或一个目录
shutil.copy2( src, dst)  在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp ?p的东西
shutil.copy2( src, dst)  如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作
shutil.copytree( olddir, newdir, True/Flase)
把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
shutil.rmtree( src ) 递归删除一个目录以及目录内的所有内容
相关文章
  • Python中os和shutil模块实用方法集锦 2014-06-26

    这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix' os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径 os.getenv() 获取一个环境变量,如果没有返回none os.putenv(key, v

  • python中os操作文件及文件路径实例汇总 2015-03-17

    这篇文章主要介绍了python中os操作文件及文件路径,实例汇总了针对文件的各种常用操作技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python中os操作文件及文件路径的方法.分享给大家供大家参考.具体分析如下: python获取文件上一级目录:取文件所在目录的上一级目录 os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir)) os.path.pardir是父目录,os.path.a

  • Python中文件遍历的两种方法 2014-04-18

    这篇文章主要介绍了Python中文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现,需要的朋友可以参考下 关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历. 方法一:利用os.walk os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()会返回一个generate

  • python中遍历文件的3个方法 2015-02-21

    这篇文章主要介绍了python中遍历文件的3个方法,本文分别使用os.path.walk().os.walk().os.listdir()来实现,需要的朋友可以参考下 今天写一个在windows下批量修改文件名的python脚本,用到文件的遍历.用python进行文件遍历有多种方法,这里列举并说明一下. os.path.walk() 这是一个传统的用法. walk(root,callable,args)方法有三个参数:要遍历的目录,回调函数,回调函数的参数(元组形式). 调用的过程是遍历目录下的

  • Python中无限元素列表的实现方法 2013-10-29

    这篇文章主要介绍了Python中无限元素列表的实现方法,很实用的功能,需要的朋友可以参考下 本文实例讲述了Python怎么实现无限元素列表的方法,具体实现可使用Yield来完成. 下面所述的2段实例代码通过Python Yield 生成器实现了简单的无限元素列表. 1.递增无限列表 具体代码如下: def increment(): i = 0 while True: yield i i += 1 for j in increment(): print i if (j > 10) : break

  • 举例详解Python中的split()函数的使用方法 2014-04-27

    这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下 函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割开 一.函数说明1.split()函数 语法:s

  • Python中实现结构相似的函数调用方法 2015-01-08

    这篇文章主要介绍了Python中实现结构相似的函数调用方法,本文讲解使用dict和lambda结合实现结构相似的函数调用,给出了不带参数和带参数的实例,需要的朋友可以参考下 python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下: >>> d = {'key1':'value1', ... 'key2':'value2', ... 'key3':'value3'} >>> print d['key2'] value2 >>>

  • Python中使用语句导入模块或包的机制研究 2015-01-12

    这篇文章主要介绍了Python中使用语句导入模块或包的机制研究,同时对比了几种导入包或模块的语句并简要说明了这几种方法之间的几点优劣,需要的朋友可以参考下 这篇文章讨论了Python的from <module> import *和from <package> import *,它们怎么执行以及为什么使用这种语法(也许)是一个坏主意. 从一个模块导入全部 from <module> import * means意味着"我希望能访问<module>中我

  • Python中几种操作字符串的方法的介绍 2015-03-27

    这篇文章主要介绍了详解Python中几种操作字符串的方法,字符串的操作是Python学习中最基础的基础知识,需要的朋友可以参考下 #! -*- coding:utf-8 -*- import string s = 'Yes! This is a string' print '原字符串:' + s print '小写:' + s.lower() print '大写:' + s.upper() print '大小写转换:' + s.swapcase() print '首字母大写:' + s.capi

  • 常见的在Python中实现单例模式的三种方法 2014-02-18

    这篇文章主要介绍了常见的在Python中实现单例模式的三种方法,单例模式在各个编程语言的学习中都是需要掌握的基础知识,需要的朋友可以参考下 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 单例模式的要点有三个:一是某个类只能有一个实例:二是它必须自行创建这个实例:三是它必须自行向整个系统

  • Python中的__new__与__init__魔术方法理解笔记 2014-02-19

    这篇文章主要介绍了Python中的__new__与__init__魔术方法理解笔记,需要的朋友可以参考下 很喜欢Python这门语言.在看过语法后学习了Django 这个 Web 开发框架.算是对 Python 有些熟悉了.不过对里面很多东西还是不知道,因为用的少.今天学习了两个魔术方法:__new__ 和 __init__. 开攻: 如果对 Python 有所简单了解的话应该知道它包含类这个概念的.语法如下: class ClassName: <statement - 1>: . . . &

  • Python中os.path用法分析 2014-04-25

    这篇文章主要介绍了Python中os.path用法,实例分析了os.path的各种常用方法,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例分析了Python中os.path用法.分享给大家供大家参考.具体如下: #coding=utf-8 import os print os.path.abspath("d:\\new\\test.txt") print os.path.basename("d:\\new\\test.txt") print os.path.d

  • 在Python中调用ggplot的三种方法 2014-04-30

    这篇文章主要介绍了在Python中调用ggplot的三种方法,ggplot作为一个图形库,经常被用来制作数据的可视化视图,需要的朋友可以参考下 本文提供了三种不同的方式在Python(IPython Notebook)中调用ggplot. 在大数据时代,数据可视化是一个非常热门的话题.各个BI的厂商无不在数据可视化领域里投入大量的精力.Tableau凭借其强大的数据可视化的功能成为硅谷炙手可热的上市公司.Tableau的数据可视化的产品,其理论基础其实是<The Grammar of Graph

  • Python中设置变量访问权限的方法 2014-06-14

    这篇文章主要介绍了Python中设置变量访问权限的方法,是Python学习当中的重要知识点,需要的朋友可以参考下 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name.score属性: >>> bart = Student('Bart Simpson', 98) >>> bart.score 98 >>>

  • python中对list去重的多种方法 2014-06-18

    这篇文章主要介绍了python中对list去重的多种方法,本文去重的前提是要保证顺序不变,本文给出了多种实现方法,需要的朋友可以参考下 今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数.不过这个东西最终还是没用上. 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids: if id not in

  • python中精确输出JSON浮点数的方法 2014-09-13

    这篇文章主要介绍了python中精确输出JSON浮点数的方法,需要的朋友可以参考下 有时需要在JSON中使用浮点数,比如价格.坐标等信息.但python中的浮点数相当不准确, 例如下面的代码: #!/usr/bin/env python import json as json data = [ 0.333, 0.999, 0.1 ] print json.dumps(data) 输出结果如下: 复制代码 代码如下: $ python floatjson.py [0.333000000000000

  • Python中MYSQLdb出现乱码的解决方法 2014-12-26

    这篇文章主要介绍了Python中MYSQLdb出现乱码的解决方法,是Python操作MySQL数据库程序设计中非常常见的问题,需要的朋友可以参考下 本文实例讲述了Python中MYSQLdb出现乱码的解决方法,分享给大家供大家参考.具体方法如下: 一般来说,在使用mysql最麻烦的问题在于乱码. 查看mysql的编码: 命令: show variables like 'character_set_%'; 可以看到如下结果: character_set_client为客户端编码方式: charac

  • Python中的包和模块实例 2015-01-29

    这篇文章主要介绍了Python中的包和模块实例,本文给出了文件结构.实现代码及代码解释,需要的朋友可以参考下 一.实例和结果 1)实例的结构和具体的文件: PyPackage │ PyCommonM.py │ __init__.py │ ├─p1Package │ P1M.py │ P1MC.py │ __init__.py │ └─p2 P2.py P2M.py 2)PyCommonM.py 复制代码 代码如下: def PyCommonMF(): print "PyCommonMF"

  • python中实现定制类的特殊方法总结 2015-03-03

    这篇文章主要介绍了python中实现定制类的特殊方法总结,本文讲解了__str__.__iter__.__getitem__.__getattr__.__call__等特殊方法,需要的朋友可以参考下 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数. 除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮

  • python中关于日期时间处理的问答集锦 2015-04-29

    python中有关日期时间处理的问答集锦,有需要的朋友不妨参考下 如何在安装setuptools模块时不生成egg压缩包而是源码 Q:如何在安装setuptools模块时不生成egg压缩包而是源码,这样有时可以修改代码进行调试 A:其实很简单,就在setup.py中的setup函数中增加 zip_safe=False, 参数即可. 这样安装后的东西不再是一个egg文件了,而是象以前一样的目录结构. 如何判断一个字符串只包含数字字符 这是在 Python.list 邮件列表上看到的讨论 Q:如何判