python的标准模块_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/zhbworkspace/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, οnerrοr=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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值