python 3 中的 os 以及 os.path 模块的使用详解!阿波的博客

首先是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,可能有的地方没有标记好

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值