Python标准库os:操作系统接口与目录操作
本文作者:李金洋
文字编辑:赵宇亮
技术总编:刘洪儒
有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~
喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~
好消息:爬虫俱乐部隆重推出数据定制及处理业务啦,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部资深高级会员为您排忧解难!
os模块作为python的核心标准库之一,可以实现执行操作系统命令、调用操作系统中的文件和目录等一系列强大的基础工作,因此几乎是大家写脚本时必定引用的类库,但这样一个集经典、实用、易学等诸多优点于一身的”c位模块”,很多精妙的功能却未必为大家所知,这主要是因为os模块中的很多内容确实繁琐、冗杂,今天小编和大家一起取其精华,看看os模块中有哪些值得一记的强大方法。
os模块第一趴:系统信息的查看与命令调用
首先导入该模块:import os
1. 获取系统信息
os.name:查看操作系统类型。name为检索的系统配置的值,一个系统值一般被定义为一个指定的字符串,例如,Linux系统返回’posix’,Windows系统返回’nt’。
ps. os模块的某些函数是跟操作系统相关的,例如在Linux系统中,uname()函数可以用来获取更详细的系统信息,但Windows系统并不提供该函数,使用后会报错。本文的操作均在Windows系统下完成。
os.linesep:打印操作系统的分隔符,例如Windows系统下分隔符是’\r\n’,Linux系统为’\n’,Mac OS系统为’\r’。
os.sep:输出操作系统特定的路径分隔符,例如Windows系统为’\\’,Linux系统为’/’。
2. 定义环境变量(即用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等)
os.environ:查看操作系统中定义的全部环境变量
os.environ[key]:获取某个环境变量的value值
os.environ.get(key):同样可以获取某个环境变量的value值,但可以指定key值不存在时的返回值,如不指定,默认返回值为空。
3. 执行系统命令
os.system(command):调用系统的shell命令,返回值是脚本的退出状态码,0代表成功,1代表不成功
os.popen(command):获取系统命令的最终结果
os模块第二趴:文件与目录的处理
操作文件和目录的函数一部分放在os模块中,另一部分放在os.path模块中。os模块下常用的文件和目录处理的方法如下:
1. 获取目录信息
os.getcwd():得到当前工作目录(get current work directory)
os.chdir(path):改变当前工作目录
os.listdir(path):列出指定路径path下的文件和目录,缺省默认为当前路径
os.curdir:指代当前目录(返回‘.’)
os.pardir:指代上一级目录(返回'..')
2. 更改目录及文件信息
os.mkdir(path):创建目录,若该目录已存在则抛出异常
os.makedirs('path1\\path2'):递归创建目录,即当上一级目录不存在时,自动创建上一级目录
os.rmdir(path):删除单层目录,如果该目录非空则抛出异常
os.removedirs('path1\\path2'):递归删除目录,从子目录到父目录逐层尝试删除,如果遇见非空则抛出异常
os.remove(path):删除指定路径的文件,如果指定路径是一个目录则抛出异常
os.walk(top[, topdown=True]):遍历top路径下所有的子目录,返回一个三元组:(路径,[包含目录],[包含文件])。选项topdown为True,则优先遍历top目录,否则将优先遍历 top 的子目录(缺省情况下为True)。
os.rename(old, new):对文件或目录重命名(可以用来修改文件类型,非常方便哦~)
os.renames(old, new):递归地对文件或目录重命名。与os.rename()相比,此函数不仅可以修改文件名或目录名,还可以修改文件所在的上级目录名称。
os.stat(file):获得文件属性的返回值,如st_size为文件大小(单位:位),st_mode为权限模式,st_ctime、st_atime和st_mtime分别为文件创建、最后访问和最后修改时间(ps:这个时间是以时间戳的形式返回,如果想转换成我们常用的时间,请参考爬虫俱乐部往期推文《Python之time模块详解》)。
今天的介绍就到这里啦~关于os模块更为详细的使用方法,大家可以参看Python官网的标准库介绍文件学习:https://docs.python.org/3.6/library/os.html。
注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
往期推文推荐:
2.hello,MySQL--Stata连接MySQL数据库
3.hello,MySQL--odbcload读取MySQL数据
9.想看什么书?Stata君帮你寻!——爬取中南财大图书馆书目信息
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。