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编程中namedtuple类的用法
Jun 21 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
Python 将pdf转成图片的方法
Apr 23 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
pandas 数据实现行间计算的方法
Jun 08 Python
python3对接mysql数据库实例详解
Apr 30 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
解决pytorch读取自制数据集出现过的问题
May 31 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
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
Python中super()函数简介及用法分享
2016/07/11 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
django实现支付宝支付实例讲解
2019/10/17 Python
Python 面向对象部分知识点小结
2020/03/09 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
Gap工厂店:Gap Factory
2017/11/02 全球购物
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
积极分子思想汇报
2014/01/04 职场文书
超市采购员岗位职责
2014/02/01 职场文书
什么是就业协议书
2014/04/17 职场文书
国际商务专业求职信
2014/07/15 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏