Python标准模块--os
1.模块简介
os模块主要包含普遍的操作系统相关操作,如果开发者希望自己开发的Python应用能够与平台无关,尤其需要关注os这个模块。
2.模块使用
2.1 os模块
1. os.name,输出字符串指示正在使用的平台,如果是Windows平台,输出'nt',如果是Linux/Unix平台,输出'posix'。
import os
print os.name
控制台输出,
posix#如果是Linux/Unix平台
nt #如果是Windows平台
2. os.getcwd,获取当前的工作目录,就是当前Python应用工作的目录。
import os
print os.getcwd()
控制台输出,
/home/zhb/workspace/PythonTest
3. os.listdir,返回指定目录下的所有文件和目录。
import os
print os.listdir(os.getcwd())
控制输出,
['test.py', '.pydevproject', 'PaperID_mapping_to_AffiliationsID.txt', '.settings', '.project', 'BrowseQueryResult.txt']
4. os.remove,删除一个文件。
import os
os.remove("temp.txt")
删除当前目录下的temp.txt文件。
5. os.system,执行shell命令。
import os
os.system("ls -al")
列出当前工作目录下的所有文件与目录的信息,控制输出,
total 3297204
drwxrwxr-x 3 zhb zhb 4096 10月 13 19:52 .
drwxrwxr-x 4 zhb zhb 4096 10月 10 20:44 ..
-rwxr--r-- 1 zhb zhb 106063 10月 13 19:03 BrowseQueryResult.txt
-rwxr--r-- 1 zhb zhb 3376199667 3月 5 2016 PaperID_mapping_to_AffiliationsID.txt
-rw-rw-r-- 1 zhb zhb 364 10月 10 20:44 .project
-rw-rw-r-- 1 zhb zhb 423 10月 10 20:44 .pydevproject
drwxrwxr-x 2 zhb zhb 4096 10月 11 15:26 .settings
-rw-rw-r-- 1 zhb zhb 241 10月 13 19:53 test.py
6. os.sep,取代操作系统特定的路径分隔符。
import os
print os.sep
控制台输出,
/#Linux/Unix操作系统输出
\#Windows操作系统输出
7. os.linesep,当前平台使用的行终止符。
>>> import os
>>> os.linesep
'\n'#Linux平台
'\r\n'#Windows平台
2.2 os.path模块
1. os.path.split,返回一个路径的目录名和文件名,并不检查这个路径是否真实存在。
import os
print os.path.split("/home/workspace/PythonTest/test.py")
print os.path.split("/home/zhb/workspace/PythonTest/test.py")
控制输出,
('/home/workspace/PythonTest', 'test.py')
('/home/zhb/workspace/PythonTest', 'test.py')
2. os.path.isfile,os.path.isdir分别用于判断指定路径是不是一个文件和目录。
import os
print os.path.isfile("/home/zhb/workspace/PythonTest/temp.txt")
print os.path.isdir("/home/zhb/workspace/PythonTest")
print os.path.isfile("/home/zhb/workspace/PythonTest/temp.py")
print os.path.isdir("/home/workspace/PythonTest")
控制台输出,
True
True
False
False
3. os.path.exists,用于检查指定的路径是否真实的存在。
import os
print os.path.exists("/home/workspace/PythonTest/test.py")
print os.path.exists("/home/zhb/workspace/PythonTest/test.py")
控制台输出,
False
True
4. os.path.abspath,获得指定文件的绝对路径。
import os
print os.path.abspath("test.py")
控制台输出,
/home/zhb/workspace/PythonTest/test.py
5. os.path.normpath,规范指定路径的字符串形式。
import os
print os.path.normpath("/home/zhb////////workspace/PythonTest/test.py")
控制台输出,
/home/zhb/workspace/PythonTest/test.py
6. os.path.getsize,获得文件大小,如果文件名为目录,则返回目录的大小。
import os
print os.path.getsize("test.py")
print os.path.getsize("temp")
控制台输出,
285
4096
7. os.path.splitext,分离文件名与扩展名。
import os
print os.path.splitext("test.py")
控制台输出,
('test', '.py')
8. os.path.join,连接目录与文件名或者目录。
import os
print os.path.join("/home/zhb/workspace/PythonTest","test.py")
print os.path.join("/home/zhb","workspace/PythonTest")
控制台输出,
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest
9. os.path.basename,返回文件名。
import os
print os.path.basename("test.py")
print os.path.basename("/home/zhb/workspace/PythonTest/test.py")
控制台输出,
test.py
test.py
10. os.path.dirname,返回文件路径。
import os
print os.path.dirname("test.py")
print os.path.dirname("/home/zhb/workspace/PythonTest/test.py")
控制台输出,
/home/zhb/workspace/PythonTest
11. os.walk,遍历顶级目录下的文件。
函数声明,os.walk(top, topdown=True, onerror=None, followlinks=False)
参数top,需要遍历的顶级目录的路径,
参数topdown,默认是"True",便是首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录中的文件。
参数onerror,默认是值是None,表示忽略文件遍历时的错误,如果不为空,则提供一个自定义函数提示错误信息后继续遍历或者抛出异常终止遍历。
import os
top_dir = "/home/zhb/workspace/PythonTest"
for dir_path,subpath,files in os.walk(top_dir,True):
for file in files:
file_path = os.path.join(dir_path,file)
print file_path
控制台输出,
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs
将参数topdown设置为False,
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
12. os.path.walk,遍历文件夹下所有文件,先遍历顶级目录,再遍历子目录中的文件,但是只产生文件路径,是子目录和文件的混合列表。
函数声明,os.path.walk(top, func, arg),
参数top,需要遍历的顶级目录路径。
参数func,表示回调函数,即对遍历路径进行处理的函数。
参数arg,是传递给回调函数的元组,为回调函数提供处理参数,arg可以为空。
import os
top_dir = "/home/zhb/workspace/PythonTest"
def find_file(arg,dir_path,files):
for file in files:
file_path = os.path.join(dir_path,file)
print file_path
os.path.walk(top_dir,find_file,())
控制输出,
/home/zhb/workspace/PythonTest/temp#子目录
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.settings#子目录
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs
3.Reference
Python标准模块--os的更多相关文章
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures
参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...
- python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...
- Python标准模块--logging(转载)
转载地址:http://www.cnblogs.com/zhbzz2007/p/5943685.html#undefined Python标准模块--logging 1 logging模块简介 log ...
- python全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程 什么是线程? 线程是cpu调度的最小单位 进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的 ...
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
- Python标准模块--importlib
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 Python提供了importlib包作为标准库的一 ...
- 【转】Python标准模块--importlib
[转]Python标准模块--importlib 作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 P ...
- python之模块 os
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块 os import os ''' FUNCTIONS abort(...)#暂不了解 a ...
随机推荐
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- Tomcat shutdown执行后无法退出进程问题排查及解决
问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...
- 分布式锁1 Java常用技术方案
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...
- solr_架构案例【京东站内搜索】(附程序源代码)
注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...
- HTML5 介绍
本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...
- load和initialize方法
一.load 方法什么时候调用: 在main方法还没执行的时候 就会 加载所有类,调用所有类的load方法. load方法是线程安全的,它使用了锁,我们应该避免线程阻塞在load方法. 在项目中使 ...
- 通过 floating IP 访问 VIP - 每天5分钟玩转 OpenStack(126)
前面我们是直接用 curl 测试 VIP,在更为真实的场景中通常会使用 floating IP 访问 VIP. 下面我们给 VIP 关联一个 floating IP,再进行测试. 访问 Project ...
- Web安全相关(三):开放重定向(Open Redirection)
简介 那些通过请求(如查询字符串和表单数据)指定重定向URL的Web程序可能会被篡改,而把用户重定向到外部的恶意URL.这种篡改就被称为开发重定向攻击. 场景分析 假设有一个正规网站http:// ...
- 微信小程序初探
做为码农相信大家最近肯定都会听到微信小程序,虽然现阶段还没有正式开放注册,但大家可以还是可以开发测试. 到微信的WIKI(http://mp.weixin.qq.com/wiki?t=resource ...