要在Python程序中执行目录和文件的操作,通过内置的os
模块,也可以直接调用操作系统提供的接口函数。
os.path.abspath('.') # 查看当前目录的绝对路径 os.path.join('/Users/qa002', 'testdir') #在某个目录下创建一个新目录,首先把新目录的完整路径表示出来 os.mkdir('/Users/qa002/testdir')# 然后创建一个目录 os.rmdir('/Users/qa002/testdir') # 删掉一个目录
把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()
函数,这样可以正确处理不同操作系统的路径分隔符。
在Linux/Unix/Mac下,os.path.join()
返回这样的字符串: part-1/part-2
而Windows下会返回这样的字符串:part-1part-2
同样的道理,要拆分路径时,也不要直接去拆字符串,通过os.path.split()
函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名:
os.path.split('/Users/qa002/testdir/file.txt') #('/Users/qa002/testdir', 'file.txt')
os.path.splitext()
可以直接让你得到文件扩展名,很多时候非常方便:
os.path.splitext('/path/to/file.txt') #('/path/to/file', '.txt')
几个基本的的方法:
1)os.getcwd() #返回当前工作目录
2)os.listdir() #返回一个列表,包含当前工作目录下的文件和路径
import os pwd=os.getcwd() list=os.listdir(r"E:pythonmsexec") print("当前目录:"+pwd) print(list)
3)os.path.join(path,*paths) 路径拼接
4)os.path.isfile(path) 判断是不是文件,返回布尔值
2.如何输出所有的文件路径呢?
代码:
def allfile(basepath): for item in os.listdir(basepath): #循环目录下的每一个元素(目录或文件) path=os.path.join(basepath,item) #路径拼接:要查询目录 + 第一级目录/文件 if os.path.isfile(path): #判断:若果为文件,直接输出path print(path) else: allfile(path) #如果仍是是目录,递归调用当前函数 path=os.getcwd() allfile(path)