Python文件夹与文件的相关操作(推荐)


Posted in Python onJuly 25, 2016

最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动。

有关文件夹与文件的查找,删除等功能 在 os 模块中实现。使用时需先导入这个模块,

导入的方法是:

import os

一、取得当前目录

s = os.getcwd()

# s 中保存的是当前目录(即文件夹)

比如运行abc.py,那么输入该命令就会返回abc所在的文件夹位置。

举个简单例子,我们将abc.py放入A文件夹。并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹。且文件夹的名字根据时间自动生成。

import os

import time

folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())

os.makedirs(r'%s/%s'%(os.getcwd(),folder))

 

二、更改当前目录

os.chdir( "C:\\123")

#将当前目录设为 "C:\123", 相当于DOC命令的 CD C:\123   

#说明: 当指定的目录不存在时,引发异常。

异常类型:WindowsError

Linux下没去试,不知是哪种

 

三 将一个路径名分解为目录名和文件名两部分

fpath , fname = os.path.split( "你要分解的路径")

例如:

a, b = os.path.split( "c:\\123\\456\\test.txt" )

print a

print b

显示:

c:\123\456

test.txt

 

四   分解文件名的扩展名

fpathandname , fext = os.path.splitext( "你要分解的路径")

例如:

a, b = os.path.splitext( "c:\\123\\456\\test.txt" )

print a

print b

显示:

c:\123\456\test

.txt

 

五、判断一个路径( 目录或文件)是否存在

 

b = os.path.exists( "你要判断的路径")

返回值b: True 或 False

 

六、判断一个路径是否文件

b = os.path.isfile( "你要判断的路径")

返回值b: True 或 False

 

七、判断一个路径是否目录

b = os.path.isdir( "你要判断的路径")

返回值b: True 或 False

 

八、获取某目录中的文件及子目录的列表        

L = os.listdir( "你要判断的路径")

例如:

L = os.listdir( "c:/" )

print L

显示 :

['1.avi', '1.jpg', '1.txt', 'CONFIG.SYS', 'Inetpub', 'IO.SYS', 'KCBJGDJC', 'KCBJGDYB', 'KF_GSSY_JC', 'MSDOS.SYS', 'MSOCache', 'NTDETECT.COM', 'ntldr', 'pagefile.sys', 'PDOXUSRS.NET', 'Program Files', 'Python24', 'Python31', 'QQVideo.Cache', 'RECYCLER', 'System Volume Information', 'TDDOWNLOAD', 'test.txt', 'WINDOWS']

这里面既有文件也有子目录

1 获取某指定目录下的所有子目录的列表

def getDirList( p ):

        p = str( p )

        if p=="":

              return [ ]

        p = p.replace( "/","\\")

        if p[ -1] != "\\":

             p = p+"\\"

        a = os.listdir( p )

        b = [ x   for x in a if os.path.isdir( p + x ) ]

        return b

print   getDirList( "C:\\" )

结果:

['Documents and Settings', 'Downloads', 'HTdzh', 'KCBJGDJC', 'KCBJGDYB', 'KF_GSSY_JC', 'MSOCache', 'Program Files', 'Python24', 'Python31', 'QQVideo.Cache', 'RECYCLER', 'System Volume Information', 'TDDOWNLOAD', 'WINDOWS']

2 获取某指定目录下的所有文件的列表

def getFileList( p ):

        p = str( p )

        if p=="":

              return [ ]

        p = p.replace( "/","\\")

        if p[ -1] != "\\":

             p = p+"\\"

        a = os.listdir( p )

        b = [ x   for x in a if os.path.isfile( p + x ) ]

        return b

print   getFileList( "C:\\" )

结果:

['1.avi', '1.jpg', '1.txt', '123.txt', '12345.txt', '2.avi', 'a.py', 'AUTOEXEC.BAT', 'boot.ini', 'bootfont.bin', 'CONFIG.SYS', 'IO.SYS', 'MSDOS.SYS', 'NTDETECT.COM', 'ntldr', 'pagefile.sys', 'PDOXUSRS.NET', 'test.txt']

 

九、创建子目录

os.makedirs(   path )   # path 是"要创建的子目录"

例如:

os.makedirs(   "C:\\123\\456\\789")

调用有可能失败,可能的原因是:

(1) path 已存在时(不管是文件还是文件夹)

(2) 驱动器不存在

(3) 磁盘已满

(4)磁盘是只读的或没有写权限

十、删除子目录

os.rmdir( path )   # path: "要删除的子目录"

产生异常的可能原因:

(1) path 不存在

(2) path 子目录中有文件或下级子目录

(3) 没有操作权限或只读

测试该函数时,请自已先建立子目录。

十一、删除文件

os.remove(   filename )   # filename: "要删除的文件名"

产生异常的可能原因:

(1)   filename 不存在

(2) 对filename文件, 没有操作权限或只读。

十二、文件改名

os.name( oldfileName, newFilename)

产生异常的原因:

(1) oldfilename 旧文件名不存在

(2) newFilename 新文件已经存在时,此时,您需要先删除 newFilename 文件。

以上这篇Python文件夹与文件的相关操作(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python对html代码进行escape编码的方法
May 04 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
玩转python爬虫之正则表达式
Feb 17 Python
Django中的Model操作表的实现
Jul 24 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
Python列表list常用内建函数实例小结
Oct 22 Python
Python Selenium参数配置方法解析
Jan 19 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
python判断是空的实例分享
Jul 06 Python
如何利用python读取micaps文件详解
Oct 18 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 #Python
python直接访问私有属性的简单方法
Jul 25 #Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 #Python
python实现汉诺塔方法汇总
Jul 25 #Python
python魔法方法-属性访问控制详解
Jul 25 #Python
python魔法方法-属性转换和类的表示详解
Jul 22 #Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 #Python
You might like
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
js Dialog 实践分享
2012/10/22 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
jQuery实现增删改查
2020/12/22 jQuery
python ansible服务及剧本编写
2017/12/29 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
大学生村官典型材料
2014/01/12 职场文书
医疗纠纷协议书
2014/04/16 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
新入职员工工作总结
2015/10/15 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS
Go 内联优化让程序员爱不释手
2022/06/21 Golang
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers