文档章节

python有关文件夹与文件的查找,删除等功能 在 os 模块中实现

开心皮蛋粥
 开心皮蛋粥
发布于 2017/03/29 09:51
字数 903
阅读 8
收藏 0

有关文件夹与文件的查找,删除等功能 在 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 文件。

© 著作权归作者所有

开心皮蛋粥
粉丝 0
博文 12
码字总数 3637
作品 0
其他
私信 提问
Python实现批量解析PDF文件提取内容并写入到Excel中

摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标。 要求: 基本...

_周小董
2018/05/20
0
0
看书 Python 源码分析笔记 (十一) 模块加载机制

第14章 Python 模块的动态加载机制 现实程序通常由多个模块构成, 模块之间存在引用和交互. 本章剖析如何加载模块, 引用另一模块中的功能. import 命令 import sys 被编译后的字节指令示例: 这...

刘军兴
2015/12/28
0
0
Python模块之递归处理文件和文件夹

这里有两个需求:删除某个目录以及子目录下的所有.svn文件删除某个文件夹下所有文件在Python中,文件操作主要来自os模块,主要方法如下: os.listdir(dirname):列出dirname下的目录和文件 ...

Neo_
2012/11/08
0
0
python学习笔记(七)——文件和目录操作

                   目录和文件操作   语言只有和外部连起来操作才会实现更强大的功能,比如操作文件、数据库等,这样数据可以有一块单独存储的地方,而不是存放在内存中...

zhoujie0111
2013/04/10
0
0
day19(python基础 I/O基础)

文件操作介绍 打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f = open('test.txt', 'w') 说明: 关闭文件 close( )...

冰封心动
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写数据可视化大屏界面电子看板9-曲线效果

一、前言 为了编写数据可视化大屏界面电子看板系统,为了能够兼容Qt4和嵌入式linux系统,尤其是那种主频很低的,但是老板又需要在这种硬件上(比如树莓派、香橙派、全志H3、imx6)展示这么华...

飞扬青云
19分钟前
0
0
责任链模式

//这篇博客的博主真的不错,解析的都很清晰明了, https://blog.csdn.net/jason0539/article/details/45091639

南桥北木
45分钟前
3
0
Flutter -------- dio网络请求

dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等... 1.添加依赖# dependencies: dio: 2.1.x #...

切切歆语
55分钟前
1
0
PHP的学习

PHP变量的命名必须以$符开始,如: $i;$j;$name; $符后面的第一个字符不可以是数字,只能是字母或者下划线(_)。 除了下划线(_)之外,变量中不能出现任何特殊字符,也就是变量只能包含...

墨冥
今天
3
0
一篇文章彻底搞懂Java虚拟机

概念: 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java Virtual Machine(Jav...

骚年锦时
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部