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与shell的3种交互方式介绍
Apr 11 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
分享vim python缩进等一些配置
Jul 02 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
pyqt5移动鼠标显示坐标的方法
Jun 21 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
pytorch中的inference使用实例
Feb 20 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 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替换字符串中间字符为省略号的方法
2015/05/04 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
异步加载script的代码
2011/01/12 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python提取内容关键词的方法
2015/03/16 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python是什么 Python的用处
2020/05/26 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
python中pyqtgraph知识点总结
2021/01/26 Python
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
2014年两会学习心得体会
2014/03/10 职场文书
公司运动会策划方案
2014/05/25 职场文书
个人自荐书范文
2015/03/09 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python