python 3 中的 os 以及 os.path 模块的使用详解!阿波的博客
2017-12-09 17:14
901 查看
首先是os模块:
要先明确两个表示:‘.’表示的是当前目录,‘..’表示的是上一级目录(如果现在有点乱的话,下面会有具体的使用,请往下看。。)
getcwd():返回当前的工作目录:import os os.getcwd() #输出'C:\\Python'
chdir(path):改变工作目录,参数:需要修改到的工作目录
os.chdir('E:\\python_py') #当再次查询当前的工作目录的时候,就会返回新的目录 os.getcwd() #输出'E:\\python_py'
listdir(path = '.'):列举指定目录中的所有文件的名字(在这里的path默认值就是'.',就是表示的当前的工作目录,返回值就是当前目录中的所有文件)返回类型是列表的形式
os.listdir() #下面就是阿波得到的返回值了 ['Fiddler', 'format.py', 'input.txt', 'jieba-0.39', 'output.txt', 'pi.py', 'PyCharm 2017.2.4', '__pycache__'] #(因为上面把工作目录更改为'E:\\python_py'所以在这里'.'表示的就是这个目录喽) #大家还可以传入path的值,来得到相应目录中的所有文件名了
mkdir(path):创建单层目录(在这里只能创建单层的目录,不可以递归创建目录!!),如果这个目录已经存在的话,就会抛出相应的异常
os.mkdir('test') #这样我们就在'.'的目录中得到一个新的test文件夹
makedirs(path):这个就是递归创建新的目录咯
,如果存在的话,也会抛异常
os.makedirs('E:\\ONE\\TWO') os.makedirs('E:\\ONE\\THREE') #这样我们就可以在E盘中得到一个ONE目录,然后其中含有两个目录,TWO,THREE
remove(path):删除文件
#首先我们先从THREE文件夹中新建一个叫test的txt文件(非要用程序的话就是open()函数操作就好) os.remove('E:\\ONE\\THREE\\test.txt') #这样我们就删除了一个指定的文件
rmdir(path):删除单层目录,如果目录中不为空的话,抛出异常
os.rmdir('E:\\ONE\\THREE') #贼样我们就删除了THREE正样得到一个目录
removedirs(path):递归删除目录,从子目录开始,依次往上删除,如果遇到一个目录不为空的话,就会抛出异常
os.removedirs('E:\\ONE\\TWO') #我们就把我们刚开始新建的目录就删除了。。 #不得不感慨,自己作的还要自己解决啊,哈哈^_^
rename(old,new):表示将文件old重新命名为new
os.rename('test.txt','阿波.txt') #我们只在当前工作目录下进行的操作,当然也可以选择绝对路径进行操作
system(command):表示运行系统的shell命令
os.system(cmd) os.system('calc') #分别表示打开cmd和calc(计算器)
walk(top):遍历这个路径下的所有子目录,返回值是由三个tuple类型元素组成的列表,[(当前目录列表),(子目录列表),(文件列表)],例子(important):
testwalk = os.walk('E:\\test_walk') for dirname,subdir,file in testwalk: print (dirname) print (subdir) print (file) print ('___________________________________') #输出结果 E:\test_walk ['test_a', 'test_b'] ['test_c.txt'] ___________________________________ E:\test_walk\test_a [] [] ___________________________________ E:\test_walk\test_b [] ['a.txt', 'b.txt', 'c.txt', 'd.txt'] ___________________________________
我们看到第一层输出的是当前目录(str类型),第二个是输出的是子目录的列表(list类型),第三个输出的是其中含有的文件列表(list类型)
下面介绍一些可以跨平台的一些操作:
os.curdir:表示的是当前目录,和上面介绍的 '.' 表示同一个意思os.pardir:表示上一级目录,和 ‘..’表示同一个意思
os.sep:表示当前系统下的路径分割符,在不同的操作平台上,他所代表的东西也不同,win表示 ‘\\’,Linux表示 '/'(小编阿波的电脑是Windows,所以上面一直在用'\\'
)
os.linesep:当前平台使用的行终止符(Win 中表示 ‘\r\n’,Linux中表示 ‘\n’)
os.name:代表自己当前使用的操作系统,(Win中会显示 ‘nt’,Linux中显示 'posix'等,小编想17年寒假换个Linux系统,吼吼)
好了,上面就差不多是os模块中经常用到的一些函数了!
现在我们介绍一下os.path模块:
basename(path):去掉目录路径,单独返回文件名import os.path os.path.basename('E:\\python_py\\input.txt') #那么就会返回input.txt,这个在实际中应用会很多
dirname(path):去掉文件名,单独返回路径名
os.path.dirname('E:\\python_py\\input.txt') #得到的值为'E:\\python_py'
join(path1[,path2[,...]]):表示将path1,path2各部分组成一个路径名
os.path.join('E:','python_py','input.txt') #输出:'E:python_py\\input.txt' #我们发现在E后面没有路径分割符,那么我们要注意了,这里我们应该自己添加上 os.path.join('E:\\','python_py','input.txt') #输出:'E:\\python_py\\input.txt'
split(path):分割文件名与路径,返回元祖类型的参数
os.path.split('E:\\python_py\\input.txt') #输出:('E:\\python_py', 'input.txt')
splitext(path):分离文件名与扩展名,返回类型也为元祖类型
os.path.splitext('E:\\python_py\\input.txt') #输出:('E:\\python_py\\input', '.txt')
getsize(file):返回文件的尺寸,单位注意是字节
os.path.getsize('E:\\python_py\\input.txt') #输出:172
这里我们一起一起说三个函数,因为这三个函数有些许的类似:
getatime(file),getctime(file),getmtime(file)
分别表示的是文件最近的访问时间,创建时间,最新的修改时间,返回类型是浮点型的秒数,(就是在讲解time模块中提到的时间戳,如果有点乱的可以在了解这个的时候先去了解一下time模块,有时间再去吧time模块做一下详细的解析吧,总体来说还是十分重要的.......^_^)ef
这里就先不写例子了........懒癌又犯了
下面我们说一些返回值是True和False的函数:
exists(path):判断文件或者目录是否存在......os.path.exists('E:\\python_py\\阿波.avi') #输出:False #怪不好意思啊的,哈哈 os.path.exists('E:\\python_py\\input.txt') #输出:True
isabs(path):判断路径书否为绝对路径
isdir(path):判断指定路径中是否存在这样的一个目录
os.path.isdir('E:\\python_py') #输出:True(目录嘛)
isfile(path):判断指定路径中是否存在这样的一个文件
os.path.isfile('E:\\python_py\\input.txt') #输出:True(文件嘛)
islink(path):判断指定路径中是否存在这样的一个符号链接
ismount(path):判断指定路径中是否存在这样的一个挂载点
samefile(path1,path2):判断path1和path2两个路径是否指向同一个文件
给大家一个实例吧,是在一本书上看到的,用python的zip方法将自己所选的文件压缩打包的指定的路径里面:
import os import time source = ['"C:\\My Documents"',"C:\\Code"]#这里是需要转换的文件所在的的位置 target_dir = 'E:\\Backup'#转换完成之后放到的文件目录 if not os.path.exists(target_dir):#首先设置第一个文件夹 os.mkdir(target_dir) today = target_dir + os.sep +\ time.strftime('%Y%m%d') now = time.strftime('%H%M%S') target = today + os.sep + now + '.zip' if not os.path.exists(today): os.mkdir(today) print ('Successful created directory',today) zip_commend = 'zip -r {0} {1}'.format(target,' '.join(source))#执行压缩的命令 print ("Zip command is:") print (zip_commend) print ('Running:') if os.system(zip_commend) ==0: print('Successful backup to',target) else: print('Backup FAILED')
这个不是那本书上的最后优化的版本,应该是第二个版本。
注:以上所有程序都是Python,可能有的地方没有标记好
相关文章推荐
- 【转自论坛】Python字符串处理指令列表以及os,os.path模块的使用方法
- python 下利用os模块创建目录以及巧妙使用if not os.path.exits()创建
- Python模块详解以及import本质,获得文件当前路径os.path.abspath,获得文件的父目录os.path.dirname,放到系统变量的第一位sys.path.insert(0,x)
- python os.path模块常用方法详解
- python os.path模块常用方法详解
- python笔记005——os.path模块用法详解
- python os.path模块常用方法详解
- 转载的:Python os 和 os.path模块详解
- python os.path模块使用
- python os.path模块常用方法详解
- os、os.path 模块中关于文件、目录常用的函数使用方法(python)
- python os.path模块常用方法详解
- Python学习18:os标准库模块使用(二),path模块使用
- python os.path模块常用方法详解
- python os.path模块常用方法详解
- python os.path模块常用方法详解
- python中os.path以及sys.path模块简介
- python学习——python os.path模块常用方法详解
- python os.path模块常用方法详解
- python os.path模块常用方法详解