os.path.isdir( ), os.path.isfile(),os.listdir( ), os.walk( )

参考网址:https://blog.csdn.net/xxn_723911/article/details/78795033

Python的os模块封装了操作系统的目录和文件操作,要注意这些函数有的在os模块中,有的在os.path模块中。

  在Python程序中如何操作目录和文件?有两种方法:

(1)操作系统提供的一些命令,只是简单地调用了操作系统提供的接口函数

(2)Python内置的os模块,也可以直接调用操作系统提供的接口函数

分类 方法、函数 作用
操作系统 os.name 查看操作系统类型
  os.uname()函数 操作系统详细信息
环境变量 os.environ 环境变量
  os.environ.get('key') 某个环境变量的值
操作文件、目录 os.getcwd() 获取当前目录
  os.listdir( ) 目录列表
  os.mkdir() 创建文件、目录
  os.rmdir() 删除文件、目录
  os.chdir() 改变默认目录
  shutil.copyfile() 复制文件
文件重命名、删除 os.rename() 文件重命名
  os.remove() 文件删除
os.path模块 os.path.abspath() 绝对路径
  os.path.join() 重组路径
os.path下拆分路径 os.path.split() 拆分路径
  os.path.splitext() 拆分路径的扩展名
os.path下判断函数 os.path.isdir() 判断目录
  os.path.isfile() 判断文件

mkdir:make directory

rmdir:remove directory

chdir:change directory

操作系统

os.name :操作系统类型,如果是nt,就是Windows系统;如果是posix,说明系统是Linux、Unix或Mac OS X

os.uname( )函数:获取详细的系统信息。

注意:uname( )函数在Windows上不提供,即,os模块的某些函数是跟操作系统相关的。

环境变量

os.environ:操作系统中定义的环境变量,全部保存在os.environ这个变量中。可以看做是一个字典dict,

os.environ.get( ' key ' ):获取某个环境变量的值(可看做,字典dict中根据key值获取对应的value值),注意:key要用引号引起来

import os
print(os.name)
print(os.uname)

操作文件和目录

操作文件和目录的函数,一部分放在os模块中,一部分放在os.path模块中,这点需要注意。

 os.getcwd方法:获取当前目录

import os
os.getcwd()

os.listdir( )方法:获取目录列表,即返回指定的路径下包含的文件或文件夹的名字的列表。只支持在Unix、Windows系统使用。

例如,获取当前路径下的子目录列表

import os
os.listdir("./")

os.mkdir方法:创建文件、目录

import os
os.mkdir("张三")

os.rmdir方法:删除文件夹、目录

例如,删除当前路径下的“张三”目录

import os
os.rmdir("张三")

os.chdir方法:改变默认目录

例如,将当前目录改编为上一级目录

import os
os.chdir("../")

复制文件:shutil模块的copyfile( )函数 

os模块中没有复制文件的函数,原因是:复制文件并非由操作系统提供的系统调用。理论上,通过读写文件可以完成文件复制,只不过要多写很多代码。

shutil模块提供了copyfile( )函数,还可以在shutil模块中找到很多实用函数,可以看做是os模块的补充。

文件的重命名和删除

os.rename( src, dst ) :src:需要修改的文件名, dst :修改后的新文件名

os.remove( path ):path:指定路径下的文件

import os

os.rename("毕业论文.txt","毕业论文-最终版.txt")

os.remove("毕业论文.txt")

os.path模块

os.path.abspath(' . '):查看当前目录的绝对路径

os.path.join(path, 新目录名 ):把创建目录之后的最终目录路径效果表示出来,然后创建目录路径和删除目录路径时,把这个最终效果当做参数即可

os.mkdir(path):可以在path路径中查看创建的新目录

import os

#路径中的目录等级是用/,//,\\,不能使用\,这个表示转义符
print("下面四句是相互有联系的") print(os.path.abspath("."))#查看当前目录的绝对路径 # 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
#这个例子是在上面一句的绝对路径下,创建新的目录,这个join的意思是,先把创建新目录之后的最终目录路径效果表示出来
print(os.path.join("F:\Program\python_pycharm",'testdir')) #创建目录,make directory
print(os.mkdir("F:/Program/python_pycharm/testdir")) #删除目录,remove directory
print(os.rmdir("F:/Program/python_pycharm/testdir"))


小结

1、路径分隔符,最好使用/, // , \\,尽量不用\,转义符也是这个符号,有时正常,有时运行错误

2、把两个路径合成一个时,不要自己直接拼写出目录路径,而要通过os.path.join( )函数,这样可以正确处理不同操作系统的路径分隔符。

在Linux/Unix/Mac下,os.path.join( )返回结果:part-1/part-2

在Windows下,os.path.join( )返回结果:part-1\part-2

3、同样的道理,拆分路径时,也不要直接去拆字符串,而要通过os.path.split( )函数

4、这些合并、拆分路径的函数,并不要求目录和文件要真实存在,它们只对字符串进行操作。


拆分路径

os.path.split( ):可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名

os.path.splitext( ):用来获取文件扩展名,即文件后缀名

print(os.path.split("E:\Test\testdir\悯农.txt"))
print(os.path.splitext("E:\\Test\\悯农.txt"))

判断目录、文件

os.path.isdir( ) 函数:判断某一路径是否为目录

os.path.isdir(path)

os.path.isfile( ) 函数:判断某一路径是否为文件

os.path.isfile(path)

实例:判断E:\照片 这个路径是否为目录或文件

 import  os
print('判断该路径是否为目录:',os.path.isdir('E:\照片'))
print('判断该路径是否为文件:',os.path.isfile('E:\照片'))

实战:

如何利用Python的特性来过滤文件。

如,列出当前目录下的所有目录   &    列出所有的 .py 文件

#列出当前目录下的所有目录
s=[x for x in os.listdir('.') if os.path.isdir(x)]
print("列出当前目录下的所有目录:",s) #列出所有的py文件
t=[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
print("列出所有的py文件:",t)

os.walk( )方法:

返回指定的路径下包含的文件或文件夹的名字的列表,还可以返回文件夹中文件名列表

实例:路径下的文件列表

 Test_file:
file1:
test1.txt
test2.txt
test3.txt
file2:
test1.txt
test2.txt
test3.txt
test1.txt
test2.txt
test3.txt
 import os

 path = 'E:\Test_file'
for parent,dirnames,filenames in os.walk(path):
print(parent,dirnames,filenames)

运行结果:

下面代码可获得指定路径下的所有文件及文件夹下子文件的目录列表:

第一种:

 import os

 path = 'E:\Test_file'
for parent,dirnames,filenames in os.walk(path):
for filename in filenames:
print(os.path.join(parent,filename))

运行结果:

第二种:

 import os

 path = 'E:\Test_file'
for parent,dirnames,filenames in os.walk(path):
print('parent:',parent)
print('dirname:',dirnames)
print('filenames:',filenames)
print( ' ')

运行结果:

结论:

通过上面两种的运行结果,可以知道:

parent:指目录下所有文件及文件夹的名称列表

dirname:文件夹的名字

filenames:列出了路径下所有的文件名称列表

最新文章

  1. 详解微信开发者文档——5 access_token管理
  2. IT技术思维导图
  3. asp.net signalR 专题—— 第三篇 如何从外部线程访问 PersistentConnection
  4. Mac OS下应用Python+Selenium实现web自动化测试
  5. shell变量的使用
  6. Android程序开发0基础教程(一)
  7. css笔记——杂记
  8. .net 与 javascript脚本的几种交互方法
  9. mysql 字段注释
  10. Mysql笔记之 -- 开启Mysql慢查询
  11. 快速解决PDF文档加密不能打印问题_百度经验
  12. java提高篇(十四)-----关键字final
  13. echarts学习总结(二):一个页面存在多个echarts图形,图形自适应窗口大小
  14. HTTP常用方法
  15. tf的一些基本用法
  16. asp.net core 系列 12 选项 TOptions
  17. 工作中使用case用法小结
  18. IMAGENT CLASSIFICATION WITH DEEP CONVOLUTIONAL NEURAL NETWORKS(翻译)
  19. sql查询语句for xml path语法
  20. 怎么删除git本地分支以及Bitbucket的远程分支?

热门文章

  1. puppeteer(六)启动参数——浏览器扩展应用的添加及应用
  2. UnityWebRequest http post json通信
  3. vi / vim 命令集合
  4. php读取和导出Excel文件
  5. react问题解决的一些方法
  6. python学习笔记之线程、进程和协程(第八天)
  7. windows 共享文件
  8. FileOutputSream文件字节输出流
  9. Javascript在使用import 与export 区别及使用
  10. GTID 跳过事物