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之os.walk和os.path.walk

Python标准模块--os的更多相关文章

  1. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  2. Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures

    参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...

  3. python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)

    昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...

  4. Python标准模块--logging(转载)

    转载地址:http://www.cnblogs.com/zhbzz2007/p/5943685.html#undefined Python标准模块--logging 1 logging模块简介 log ...

  5. python全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)

    昨日内容回顾 线程 什么是线程? 线程是cpu调度的最小单位 进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的 ...

  6. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  7. Python标准模块--importlib

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 Python提供了importlib包作为标准库的一 ...

  8. 【转】Python标准模块--importlib

    [转]Python标准模块--importlib 作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 模块简介 P ...

  9. python之模块 os

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块 os import os ''' FUNCTIONS abort(...)#暂不了解 a ...

随机推荐

  1. CoreCRM 开发实录 —— Profile

    再简单的功能,也需要一坨代码的支持.Profile 的编辑功能主要就是修改个人的信息.比如用户名.头像.性别.电话--虽然只是一个编辑界面,但添加下来,涉及了6个文件的修改和7个新创建的文件.各种生成 ...

  2. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  3. DDR的前世与今生(一)

    作者:一博科技 DDR SDRAM全称为Double Data Rate SDRAM,中文名为"双倍数据率SDRAM".DDR是在原有的SDRAM的基础上改进而来,严格的说DDR应 ...

  4. 转:聊聊mavenCenter和JCenter

    Gradle支持从maven中央仓库和JCenter上获取构件,那这两者有什么区别呢? maven中央仓库(http://repo1.maven.org/maven2/)是由Sonatype公司提供的 ...

  5. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  6. ASP.NET Core 中文文档 第四章 MVC(3.9)视图组件

    作者: Rick Anderson 翻译: 娄宇(Lyrics) 校对: 高嵩 章节: 介绍视图组件 创建视图组件 调用视图组件 演练:创建一个简单的视图组件 附加的资源 查看或下载示例代码 介绍视图 ...

  7. System.Guid ToString五中格式

    参考:https://msdn.microsoft.com/en-us/library/97af8hh4.aspx 测试代码: using System; using System.Collectio ...

  8. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...

  9. cesium自定义气泡窗口infoWindow

    一.自定义气泡窗口与cesium默认窗口效果对比: 1.cesium点击弹出气泡窗口显示的位置固定在地图的右上角,默认效果: 2.对于习惯arcgis或者openlayer气泡窗口样式的giser来说 ...

  10. Android中常见的图片加载框架

    图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行 ...