python 中的os模块

Python os 模块提供了一个统一的操作系统接口函数

一、对于系统的操作

1、os.name 当前使用平台

其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix

2、os.sep

输出操作系统的特定的路径分隔符。Win下为“\”,Linux下为“/”

3、os.pathsep 输出分格符

输出用于分割文件路径的字符串。 Windows下是‘;‘,Linux下为“:”

4、os.linesep 换行符

输出当前平台是用的行终止符,win下为“\r\n”,Linux下为“\n”,Mac使用‘\r‘。

5、os.environ

获取系统环境变量path

6、os.system(‘dir c:\\‘)

直接执行系统命令

假定有一个shell脚本test.sh:
[email protected]:~$ vi test.sh
[email protected]:~$ more test.sh

#!/bin/bash

echo ‘hello python!‘

echo ‘hello world!‘

exit 1

>>> import os

>>> os.system("./test.sh")

hello python!

hello world!

256

7、os.popen()

执行一个系统命令,把执行结果存到文件句柄中(和python中open函数类似)

dirList=os.popen(‘dir d:\\tmp‘)

for i in dirList:

print i

>> import os

>>> os.popen("./test.sh")

<open file ‘./test.sh‘, mode ‘r‘ at 0x7f6cbbbee4b0>

>>> f=os.popen("./test.sh")

>>> f

<open file ‘./test.sh‘, mode ‘r‘ at 0x7f6cbbbee540>

>>> f.readlines()

[‘hello python!\n‘, ‘hello world!\n‘]

二、对于目录的操作

1、os.getcwd()

获取当前的工作目录,即当前Python脚本工作的目录路径。

结果:E:\python\0507

2、os.chdir(‘d:\\‘)

修改当前的工作目录

3、os.curdir

返回当前目录

4、os.pardir

目录切换到父目录(上一级目录)

三、对文件的操作

1、os.listdir(‘e:\\tmp‘)

列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。

2、os.rename(‘e:\\tmp\\1.txt‘,‘e:\\tmp\\1new.txt‘)

修改文件名

3、os.stat(‘e:\\tmp\\02.txt‘)

获取文件的生命周期中的各个时间

4、os.utime(path[, (atime, mtime)]) 修改文件的时间属性

设置文件的access and modified time为给定的时间

如果未指定atime和mtime参数,修改的时间将会是当前的时间。

5、os.access()

输出文件是否有写的权限:

print os.access(fileName,os.W_OK)

print os.access(fn,os.R_OK) 文件是否有读的权限

print os.access(fn,os.X_OK) 文件是否有执行的权限

四、os.path

1、os.path.exists(path)

返回当前的目录或者文件是否存在

判断path是否存在,如果存在返回True,否则返回False。

2、os.path.isabs(path)

判断路径是否为绝对路径

判断path是否是绝对路径,如果是返回True,否则返回False。

3、os.path.isfile(path)

判断是否是文件

判断path是否是文件,如果是返回True,否则返回False。

4、os.path.isdir(path)

判断是否是目录

判断path是否是目录,如果是目录返回True,否则返回False。

5、os.path.getsize(path): 单位是字节

返回文件或者目录的大小。获得文件大小,如果name是目录返回0L;如果name代表的目录或文件不存在,怎会报WindowsError异常。

6、os.path.abspath(path)

获取绝对路径,(但这个路径不一定是真实存在的路径)

eg:

print os.path.abspath(‘d:\\tmp\\test13.txt‘)

print os.path.abspath(‘test13.txt‘)#返回当前执行目录下的文件名的路径,文件没有的时候也会返回

print os.getcwd()

结果:

d:\tmp\test13.txt

D:\python\0512\test13.txt

D:\python\0512

7、os.path.normpath(path)

把path转换为标准的路径。用于解决跨平台问题

五、从路径中获取盘符,文件名,扩展名,目录

1、os.path.split(path)

对文件路径做分割,把最后一个\\后面的文件会目录分割出来

将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。

eg:

print os.path.split(‘D:\\tt4\\c12‘)

print os.path.split(‘D:\\tt4\\c12\\‘)

print os.path.split(‘D:\\tt4\\c12\\t1.txt‘)

结果:

(‘D:\\tt4‘, ‘c12‘)

(‘D:\\tt4\\c12‘, ‘‘)

(‘D:\\tt4\\c12‘, ‘t1.txt‘)

2、os.path.dirname(path)

返回目录的名称

返回path的目录路径,其实就是os.path.split(path)的第一个元素。

3、os.path.basename(path)

返回文件的名称

返回path最后的文件名。如果path以/或\结尾,就会返回空值。即os.path.split(path)的第二个元素。

4、os.path.splitext(path)

把路径和扩展名切分开

print os.path.splitext(‘01.py‘)

print os.path.splitext(‘d:\\tmp\\001.txt‘)

print os.path.splitext(‘D:\\tt4\\c12‘)

结果:

(‘01‘, ‘.py‘)

(‘d:\\tmp\\001‘, ‘.txt‘)

(‘D:\\tt4\\c12‘, ‘‘)

fileName,expandName = os.path.splitext(f)

把路径和扩展名分开后可以直接赋值给两个变量,其实得到的是一个元组

5、os.path.splitdrive(path)

拆分驱动器(盘符)和后面的路径。拆分驱动器和文件路径,并以元组返回结果;主要针对win有效,Linux元组第一个总是空。

返回结果是元祖

6、os.path.join(path,*paths)

把所有的路径组合成绝对路径。连接两个或更多的路径名,中间以“\”分隔,如果所给的参数中都是绝对路径名,那最先给的绝对路径将会被丢弃

六、os.walk()

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

在Unix,Windows中有效。

语法

walk()方法语法格式如下:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

参数

  • top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
  • topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
  • onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
  • followlinks -- 设置为 true,则通过软链接访问目录。

以下实例演示了 walk() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

执行以上程序输出结果为:

./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp
./tmp/test.py

原文地址:https://www.cnblogs.com/MY0213/p/8669187.html

时间: 2024-10-09 07:57:49

python 中的os模块的相关文章

【转】python中的os模块

在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比较常用的几个方法.网上这方面资料也很多,每次整理,只是对自己所学的知识进行梳理,从而加深对某个模块的使用. 1.当前路径及路径下的文件 os.getcwd():查看当前所在路径. os.listdir(path):列举目录下的所有文件.返回的是列表类型 import os dir = os.getcwd(

Python中的os模块常用函数

本文的参考文献为------<简明Python教程> os是python的一个重要的模块,使用前需要:import os 常用的函数如下: (1)os.name,返回正在使用的平台. (2)os.getcwd(),返回当前工作目录. (3)os.path.exists(),检验给出的路径是否真正地存在. (4)os.path.isfile(),检验给出的路径是否为一个文件. (5)os.path.isdir(),检验给出的路径是否为一个目录. (6)os.path.split(),返回一个路径

Python中的OS模块。

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径: import os print(os.getcwd()) os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.chdir('E:\Python学习') # 这里输入你要进入的文件夹路径 print(os.getcwd()) # 打印验证即可 os.curdir 返回当前目录: ('.') os.curdir print(os.getcwd()) os.pardir

python下通过os模块和shutil模块进行文件处理方式

python下通过os模块和shutil模块进行文件处理方式 得到当前工作目录路径:os.getcwd() 获取指定目录下的所有文件和目录名:os.listdir(dir) 删除文件:os.remove(file) 删除多个目录:os.removedirs(r"/home") 检测路径是否为文件:os.path.isfile(path) 检测路径是否为目录:os.path.isdir(path) 判断是否为绝对路径:os.path.isabs(path) 检测路径是否存在:os.pat

Python中的logging模块【转】

基本用法 下面的代码展示了logging最基本的用法. 1 # -*- coding: utf-8 -*- 2 3 import logging 4 import sys 5 6 # 获取logger实例,如果参数为空则返回root logger 7 logger = logging.getLogger("AppName") 8 9 # 指定logger输出格式 10 formatter = logging.Formatter('%(asctime)s %(levelname)-8s:

Python中的logging模块

http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Python里的OS模块常用函数说明

Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行. 下面列出了一些在os模块中比较有用的部分.它们中的大多数都简单明了. os.sep可以取代操作系统特定的路径分隔符.windows下为 "\\" os.name字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'pos

python中的commands模块,执行出错:&#39;{&#39; 不是内部或外部命令,也不是可运行的程序 或批处理文件。

最近发现了python的commands模块,查看了下源码,使用的popen封装的,形成三个函数getstatus(), getoutput(), getstatusoutput() 源码如下: def getstatus(file): """Return output of "ls -ld <file>" in a string.""" import warnings warnings.warn("co

Python入门之Python中的logging模块

基本用法 下面的代码展示了logging最基本的用法. import logging import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("AppName") # 指定logger输出格式 formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s') # 文件日志 file_handler = logging.