浅谈Python中os模块及shutil模块的常规操作


Posted in Python onApril 03, 2020

如下所示:

#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。

#只支持在 Unix, Windows 下使用
import os, sys

# 打开文件
path=r'C:\Users\Administrator.SKY-20180518VHY\Desktop\rx\ore'
dirs = os.listdir( path )
print(dirs)
# 输出所有文件和文件夹
for file in dirs:
 print (file)

1.os.path.abspath(path)

返回path规范化的绝对路径。

>>> os.path.abspath('1.docx') 
C:\Users\Administrator.SKY-20180518VHY\Desktop\t\1.docx
 
>>> os.path.abspath('../csv\\test.csv') 
'C:\\csv\\test.csv'

2.os.path.split(path)

将path分割成目录和文件名二元组返回。

l=os.path.split(r'C:\Users\Administrator.SKY-20180518VHY\Desktop\t\1.docx') 
print(l)
('C:\\Users\\Administrator.SKY-20180518VHY\\Desktop\\t', '1.docx')

3.os.path.dirname(path)

返回path的目录。其实就是os.path.split(path)的第一个元素。

os.path.dirname('c:\\csv\test.csv') 
'c:\\' 
os.path.dirname('c:\\csv') 
'c:\\'

4.os.path.basename(path)

返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。

os.path.basename('c:\\test.csv') 
'test.csv' 
os.path.basename('c:\\csv') 
'csv' (这里csv被当作文件名处理了) 
os.path.basename('c:\\csv\\') 
''

5.os.path.commonprefix(list)

返回list中,所有path共有的最长的路径。

如:

>>> os.path.commonprefix(['/home/td','/home/td/ff','/home/td/fff'])
'/home/td'

6.os.path.exists(path)

如果path存在,返回True;如果path不存在,返回False。

>>> os.path.exists('c:\\') 
True 
>>> os.path.exists('c:\\csv\\test.csv') 
False

7.os.path.isabs(path)

如果path是绝对路径,返回True。

8.os.path.isfile(path)

如果path是一个存在的文件,返回True。否则返回False。

>>> os.path.isfile('c:\\boot.ini') 
True 
>>> os.path.isfile('c:\\csv\\test.csv') 
False 
>>> os.path.isfile('c:\\csv\\') 
False

9.os.path.isdir(path)

如果path是一个存在的目录,则返回True。否则返回False。

>>> os.path.isdir('c:\\') 
True 
>>> os.path.isdir('c:\\csv\\') 
False 
>>> os.path.isdir('c:\\windows\\test.csv') 
False

10.os.path.join(path1[, path2[, …]])

将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。

>>> os.path.join('c:', 'csv', 'test.csv') 
'c:\\csv\\test.csv' 
>>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv') 
'c:\\csv\\test.csv' 
>>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c') 
'/home/aa/bb/c'

11.os.path.normcase(path)

在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。

>>> os.path.normcase('c:/windows\\system32\\')
'c:\\windows\\system32\\'

12.os.path.normpath(path)

规范化路径。

>>> os.path.normpath('c://windows\\System32\\../Temp/')
'c:\\windows\\Temp'

13.os.path.splitdrive(path)

返回(drivername,fpath)元组

>>> os.path.splitdrive('c:\\windows')
('c:', '\\windows')

14.os.path.splitext(path)

分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作

>>> os.path.splitext('c:\\csv\\test.csv')
('c:\\csv\\test', '.csv')

15.os.path.getsize(path)

返回path的文件的大小(字节)。

>>> os.path.getsize('c:\\boot.ini')
299L

16.os.path.getatime(path)

返回path所指向的文件或者目录的最后存取时间。

17.os.path.getmtime(path)

返回path所指向的文件或者目录的最后修改时间

18.os.mkdir(path)

其参数path 为要创建目录的路径。

import os
os.mkdir('d:\hello')

19.可以使用os.makedirs()函数创建多级目录。

其原型如下所示:

os.makedirs(path)

其参数path 为要创建目录的路径。

import os
os.makedirs('d:\\books\\book')

20.删除目录

在Python中可以使用os.rmdir()函数删除目录。

其原型如下所示:

os.rmdir(path)

其参数path 为要删除的目录的路径。

例如把D盘下的hmm的目录删除

import os
os.rmdir('d:\hmm')

21.删除多级目录

Python中可以使用os.removedirs()函数删除多级目录。

其原型如下所示:

os.removdirs(path)

其参数path 为要删除的多级目录的路径

import os
os.removedirs('d:\\books\\book')

#注意:要删除的目录必须是空目录,,

22.删除文件

在Python中可以使用os.remove()函数删除文件(注意一定是一个文件)。

其原型如下所示:

os.remov(path)

其参数path 为要删除的文件的路径。

如删除D盘下books目录下book目录中的book.txt的文件

import os
os.remove('d:\\books\\book\\book.txt')

23.遍历目录

在Python中可以使用os.walk()函数遍历目录。

其原型如下所示:

os.walk(path)

其参数path 为要遍历的目录,遍历path,返回一个对象,他的每个部分都是一个三元组 ('目录x',[目录x下的目录list],目录x下面的文件) 。

如:

>>> a=os.walk('d:\\books')
>>> def fun():
  for i in a:
   print i
>>> fun()
('d:\\books', ['book'], ['aa.txt'])
('d:\\books\\book', [ ], [ ])

24.判断是否为目录

在Python中可以使用os.path.isdir()函数判断某一路径是否为目录。

其函数原型如下所示:

os.path.isdir(path)

其参数 path为 要进行判断的路径。如果是则返回TRUE,否则返回FALSE。

判断是否为文件

在Python中可以使用os.path.isfile()函数判断某一路径是否为文件。其函数原型如下所示。

os.path.isfile(path)

其参数path为要进行判断的路径。如果是则返回TRUE,否则返回FALSE。

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模块的常规操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之集合(set)
Sep 24 Python
Python基于PycURL实现POST的方法
Jul 25 Python
python自动翻译实现方法
May 28 Python
EM算法的python实现的方法步骤
Jan 02 Python
谈谈python中GUI的选择
Mar 01 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
让代码变得更易维护的7个Python库
Oct 09 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python文件时间操作步骤代码详解
Apr 13 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 28 Python
python可视化之颜色映射详解
Sep 15 Python
Python实现多线程下载脚本的示例代码
Apr 03 #Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 #Python
pycharm安装及如何导入numpy
Apr 03 #Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 #Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 #Python
Numpy 理解ndarray对象的示例代码
Apr 03 #Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 #Python
You might like
php读取msn上的用户信息类
2008/12/05 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
在vue中使用jointjs的方法
2018/03/24 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
jQuery实现日历效果
2020/09/11 jQuery
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
python中range()与xrange()用法分析
2016/09/21 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python2与Python3的区别实例总结
2019/04/17 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
探亲邀请信范文
2014/01/30 职场文书
土建工程师岗位职责
2014/06/10 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
Python爬取某拍短视频
2021/06/11 Python