浅谈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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
Python常用随机数与随机字符串方法实例
Apr 09 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
Python 如何定义匿名或内联函数
Aug 01 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 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&&mysql)六
2006/10/09 PHP
基于mysql的bbs设计(四)
2006/10/09 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
python交互式图形编程实例(二)
2017/11/17 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
python的setattr函数实例用法
2020/12/16 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
优秀毕业生推荐信范文
2014/03/07 职场文书
项目施工员岗位职责
2014/03/09 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
关于学习的决心书
2015/02/05 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
配置Kubernetes外网访问集群
2022/03/31 Servers
vue组件vue-esign实现电子签名
2022/04/21 Vue.js