文件系统功能:os模块内置属性方法

1、目录相关

chdir():改变工作目录

chroot(): 设定当前进程的根目录

listdir(): 列出指定目录下的所有文件名

mkdir(): 创建指定目录

makedirs(): 创建多级目录

getcwd():获取当前工作目录

rmdir():删除目录

removedirs(): 删除多级目录

用法示例:

In [1]:

import os

In [2]:

os.

Display

all 207 possibilities? (y or n)

os.EX_CANTCREAT

os.O_DSYNC

os.WCONTINUED

os.confstr_names

os.fdopen

os.getsid

os.pardir

os.setpgid

os.sys

os.EX_CONFIG

os.O_EXCL

os.WCOREDUMP

os.ctermid

os.fork

os.getuid

os.path

os.setpgrp

os.sysconf

os.EX_DATAERR

os.O_LARGEFILE

os.WEXITSTATUS

os.curdir

os.forkpty

os.initgroups

os.pathconf

os.setregid

os.sysconf_names

os.EX_IOERR

os.O_NDELAY

os.WIFCONTINUED

os.defpath

os.fpathconf

os.isatty

os.pathconf_names

os.setresgid

os.system

os.EX_NOHOST

os.O_NOATIME

os.WIFEXITED

os.devnull

os.fstat

os.kill

os.pathsep

os.setresuid

os.tcgetpgrp

os.EX_NOINPUT

os.O_NOCTTY

os.WIFSIGNALED

os.dup

os.fstatvfs

os.killpg

os.pipe

os.setreuid

os.tcsetpgrp

os.EX_NOPERM

os.O_NOFOLLOW

os.WIFSTOPPED

os.dup2

os.fsync

os.lchown

os.popen

os.setsid

os.tempnam

os.EX_NOUSER

os.O_NONBLOCK

os.WNOHANG

os.environ

os.ftruncate

os.linesep

os.popen2

os.setuid

os.times

os.EX_OK

os.O_RDONLY

os.WSTOPSIG

os.errno

os.getcwd

os.link

os.popen3

os.spawnl

os.tmpfile

os.EX_OSERR

os.O_RDWR

os.WTERMSIG

os.error

os.getcwdu

os.listdir

os.popen4

os.spawnle

os.tmpnam

os.EX_OSFILE

os.O_RSYNC

os.WUNTRACED

os.execl

os.getegid

os.lseek

os.putenv

os.spawnlp

os.ttyname

os.EX_PROTOCOL

os.O_SYNC

os.W_OK

os.execle

os.getenv

os.lstat

os.read

os.spawnlpe

os.umask

os.EX_SOFTWARE

os.O_TRUNC

os.X_OK

os.execlp

os.geteuid

os.major

os.readlink

os.spawnv

os.uname

os.EX_TEMPFAIL

os.O_WRONLY

os.abort

os.execlpe

os.getgid

os.makedev

os.remove

os.spawnve

os.unlink

os.EX_UNAVAILABLE

os.P_NOWAIT

os.access

os.execv

os.getgroups

os.makedirs

os.removedirs

os.spawnvp

os.unsetenv

os.EX_USAGE

os.P_NOWAITO

os.altsep

os.execve

os.getloadavg

os.minor

os.rename

os.spawnvpe

os.urandom

os.F_OK

os.P_WAIT

os.chdir

os.execvp

os.getlogin

os.mkdir

os.renames

os.stat

os.utime

os.NGROUPS_MAX

os.R_OK

os.chmod

os.execvpe

os.getpgid

os.mkfifo

os.rmdir

os.stat_float_times os.wait

os.O_APPEND

os.SEEK_CUR

os.chown

os.extsep

os.getpgrp

os.mknod

os.sep

os.stat_result

os.wait3

os.O_ASYNC

os.SEEK_END

os.chroot

os.fchdir

os.getpid

os.name

os.setegid

os.statvfs

os.wait4

os.O_CREAT

os.SEEK_SET

os.close

os.fchmod

os.getppid

os.nice

os.seteuid

os.statvfs_result

os.waitpid

os.O_DIRECT

os.TMP_MAX

os.closerange

os.fchown

os.getresgid

os.open

os.setgid

os.strerror

os.walk

os.O_DIRECTORY

os.UserDict

os.confstr

os.fdatasync

os.getresuid

os.openpty

os.setgroups

os.symlink

os.write

In [2]:

os.mkdir('/tmp/0526') #创建目录

In [3]:

os.getcwd()

#获取当前路径

Out[3]:

'/root'

In [4]:

os.chdir('/tmp')

#改变当前路径为/tmp

In [5]:

os.getcwd()

Out[5]:

'/tmp'

In [7]:

os.makedirs('x/y/z')

#递归创建目录

In [8]:

os.rmdir('/tmp/0526') #删除目录

2、文件相关

mkfifo():创建命令管道

mknod(): 创建设备文件

remove():删除文件

unlink():删除链接文件

rename(): 重命名

stat(): 返回文件状态信息

symlink():创建连接

utime(): 更新时间戳

tmpfile(): 创建并打开(w+b)一个新的临时文件

walk():目录树生成器

用法示例:

In [1]:

import os

In [2]:

os.getcwd()

Out[2]:

'/root'

In [3]:

os.chdir('/field/') #切换目录到/field/下

In [4]:

os.getcwd()

Out[4]:

'/field'

In [6]:

os.listdir('/field/') #列出/field/目录下的文件

Out[6]:

['passwd', 'tmp.txt', 'test.unl', 'test0526.txt']

In [7]:

os.remove('/field/tmp.txt') #删除/field/目录下的tmp.txt文件

In [8]:

os.listdir('/field/')

Out[8]:

['passwd', 'test.unl', 'test0526.txt']

In [9]:

os.stat('/field/test.unl') #查询/field/目录下的test.unl文件详细信息

Out[9]:

posix.stat_result(st_mode=33188, st_ino=89994, st_dev=2050L,

st_nlink=1, st_uid=0, st_gid=0, st_size=25, st_atime=1527341763,

st_mtime=1527341763, st_ctime=1527341779)

In [10]:

os.rename('/field/test.unl','/field/newtest.unl') #重命名test.unl为newtest.unl

In [11]:

os.listdir('/field/')

Out[11]:

['passwd', 'newtest.unl', 'test0526.txt']

In [12]:

os.symlink('newtest.unl','test.unl') #为newtest.unl创建软链接test.unl

[root@test

field]# ll

总用量 12

-rw-r--r--

1 root root 25

5月26 21:36

newtest.unl

-rw-r--r--

1 root root 1966 5月26 21:36

passwd

-rw-r--r--

1 root root 70

5月26 21:36

test0526.txt

lrwxrwxrwx

1 root root 11

5月26 21:42 test.unl

-> newtest.unl

In [13]:

os.listdir('/field/')

Out[13]:

['passwd', 'test.unl', 'newtest.unl', 'test0526.txt']

In [14]:

os.unlink('test.unl')

#删除链接test.unl

In [15]:

os.listdir('/field/')

Out[15]:

['passwd', 'newtest.unl', 'test0526.txt']

[root@test

field]# ll

总用量 12

-rw-r--r--

1 root root 25

5月26 21:36

newtest.unl

-rw-r--r--

1 root root 1966 5月26 21:36

passwd

-rw-r--r--

1 root root 70

5月26 21:36

test0526.txt

In [16]:

g1 = os.walk('/field/') #生成一个目录树

In [17]:

g1.next()

Out[17]:

('/field/', ['0526', 'testdir'], ['passwd', 'newtest.unl',

'test0526.txt'])

3、访问权限相关

access(path, mode): 查看是否具备访问权限

chmod(path, mode): 修改权限

chown(path, uid, gid):修改属主,属组

umask(): 设置默认权限模式、

用法示例:

In [22]:

os.access('passwd',0)

#查看root是否有passwd访问权限

Out[22]:

True

In [23]:

os.access('passwd',500)

#查看500用户是否有passwd访问权限

Out[23]:

False

In [24]:

os.chmod('passwd',0755)

#修改passwd权限为755

In [25]:

os.chown('passwd',500,500) #修改文件属主属组为500

[root@test

field]# ll passwd

-rwxr-xr-x

1 root root 1966 5月26 21:36

passwd

[root@test

field]# id field

uid=500(field) gid=500(field) 组=500(field)

[root@test

field]# ll passwd

-rwxr-xr-x

1 field field 1966 5月26 21:36

passwd

4、文件描述符相关

open(filename, flag [, mode=0777]) ->

fd:底层操作系统打开一个文件,库中的函数打开一个文件

read():较底层IO的读操作

write():较底层IO的写操作

5、设备文件相关

makedev(major, minor): 创建设备文件

major(device):从指定设备获取主设备号,device设备号

minor(device):从指定设备获取从设备号

用法示例

In [1]:

os.major(61)

Out[1]:

0

In [2]:

os.major(610)

Out[2]:

2

In [3]:

os.minor(610)

Out[3]:

98

In [4]:

os.minor(61)

Out[4]:

61Out[30]: 2

6、os.path文件路径相关属性方法

basename(): 路径基名

dirname(): 路径目录名

join(): 构建绝对路径

split(): 返回dirname(),

basename()元组

splitext(): 返回(filename,

extension)元组

用法示例

例1:常见方法使用

In [1]:

import os.path

In [2]:

os.path.

os.path.abspath

os.path.ismount

os.path.altsep

os.path.join

os.path.basename

os.path.lexists

os.path.commonprefix

os.path.normcase

os.path.curdir

os.path.normpath

os.path.defpath

os.path.os

os.path.devnull

os.path.pardir

os.path.dirname

os.path.pathsep

os.path.exists

os.path.realpath

os.path.expanduser

os.path.relpath

os.path.expandvars

os.path.samefile

os.path.extsep

os.path.sameopenfile

os.path.genericpath

os.path.samestat

os.path.getatime

os.path.sep

os.path.getctime

os.path.split

os.path.getmtime

os.path.splitdrive

os.path.getsize

os.path.splitext

os.path.isabs

os.path.stat

os.path.isdir

os.path.supports_unicode_filenames

os.path.isfile

os.path.walk

os.path.islink

os.path.warnings

In [2]:

os.path.dirname('/etc/sysconfig/network-scripts') #查看路径目录名

Out[2]:

'/etc/sysconfig'

In [3]:

os.path.basename('/etc/sysconfig/network-scripts') #查看路径基名

Out[3]:

'network-scripts'

In [4]:

dir1 = os.path.dirname('/etc/sysconfig/network-scripts')

In [5]:

file1 =

os.path.basename('/etc/sysconfig/network-scripts')

In [6]:

print dir1, file1

/etc/sysconfig network-scripts

In [7]:

os.path.join(dir1,file1)

#使用os.path.join(dir1,file1)联合路径目录名和基名,构建绝对路径

Out[7]:

'/etc/sysconfig/network-scripts'

In [8]:

os.listdir('/field/')

Out[8]:

['0526', 'passwd', 'testdir', 'newtest.unl',

'test0526.txt']

例2:使用绝对路径打印/field/下文件

In [9]:

for filename in os.listdir('/field/'):

...:

print os.path.join('/field',filename)

...:

/field/0526

/field/passwd

/field/testdir

/field/newtest.unl

/field/test0526.txt

In [10]:

os.path.split('/field/passwd')

Out[10]:

('/field', 'passwd')

7、文件信息相关

getatime():最近一次访问时间

getctime():文件状态最后一次被改变的时间

getmtime():文件内容最后一次被修改的时间

getsize(): 返回文件的大小

8、文件查询相关

exists(): 判断指定文件是否存在

isabs(): 判断指定的路径是否为绝对路径

isdir(): 是否为目录

isfile(): 是否为文件

islink(): 是否符号链接

ismount(): 是否为挂载点

samefile(): 两个路径是否指向了同一个文件

应用实例

判断文件是否存在,存在则打开,不存在则新建,让用户通过键盘反复输入多行数据,追加保存至此文件中,并使用“q”和“quit”控制输入

[root@test

field]# ls

0526

newtest.unl

passwd

test0526.txt testdir

[root@test

field]# vim test.py

#!/usr/bin/python27

#

import

os

import

os.path

filename =

'/field/tmp.txt'

if

os.path.exists(filename):

f1 = open(filename,'a+')

else:

f1 = open(filename,'w+')

while

True:

line = raw_input('Please say something>')

if line == 'q' or line == 'quit':

break

f1.write(line+'\n')

f1.close()

[root@test

field]# ./test.py

Please say

something>hello world!

Please say

something>how are you ?

Please say

something>how old are you ?

Please say

something>i am field.

Please say

something>quit

[root@test

field]# cat tmp.txt

hello

world!

how are

you ?

how old

are you ?

i am

field.

[root@test

field]# ./test.py

Please say

something>yes sir!

Please say

something>thanks!

Please say

something>q

[root@test

field]# cat tmp.txt

hello

world!

how are

you ?

how old

are you ?

i am

field.

yes

sir!

thanks!

python os模块详细_Python文件系统功能--os模块详解相关推荐

  1. python怎样实现封装_Python底层封装实现方法详解

    Python底层封装实现方法详解 这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,pyth ...

  2. python音频转数组_python音频处理的示例详解

    准备工作: 首先,我们需要 import 几个工具包,一个是 python 标准库中的 wave 模块,用于音频处理操作,另外两个是 numpy 和 matplot,提供数据处理函数. 一:读取本地音 ...

  3. python多进程应用场景_python使用多进程的实例详解

    python多线程适合IO密集型场景,而在CPU密集型场景,并不能充分利用多核CPU,而协程本质基于线程,同样不能充分发挥多核的优势. 针对计算密集型场景需要使用多进程,python的multipro ...

  4. python语法错误概述_Python 错误和异常代码详解

    程序中的错误一般被称为 Bug,无可否认,这几乎总是程序员的错... 程序员的一生,始终伴随着一件事 - 调试(错误检测.异常处理).反反复复,最可怕的是:不仅自己的要改,别人的也要改...一万头草泥 ...

  5. [转载] python支持complex吗_Python 内置函数complex详解

    参考链接: Python complex() 英文文档: class complex([real[, imag]]) Return a complex number with the value re ...

  6. python的底层实现_Python底层封装实现方法详解

    这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,python封装特性的实现纯属" ...

  7. python统计汉字字数_Python 统计字数的思路详解

    问题描述: 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次 ...

  8. python中config命令_python的logging.config使用详解

    python的log模块是日常使用最多的模块之一,  简单的使用这里就不多说了,见(http://blog.csdn.net/jianhong1990/article/details/17475717 ...

  9. python列转行函数_Python pandas 列转行操作详解(类似hive中explode方法)

    最近在工作上用到Python的pandas库来处理excel文件,遇到列转行的问题.找了一番资料后成功了,记录一下. 1. 如果需要爆炸的只有一列: df=pd.DataFrame({'A':[1,2 ...

最新文章

  1. 在ToolStrip中加入具有更好体验性的DateTimePicker
  2. Objective-C 内存管理retain和release
  3. 华为计算产品备件查询助手
  4. 【深入Java虚拟机JVM 05】HotSpot对象探秘
  5. sqlmap常用操作命令
  6. 【加法笔记系列】逻辑电路的实现
  7. 官方首次披露,TDSQL十年自主可控之路(附PDF)
  8. shell脚本执行方式,更方便更快捷。
  9. 计算机网络要点,计算机网络要点
  10. 数据库原理及应用(索引为什么快,数据在磁盘上如何存储)
  11. webpack2终极优化
  12. wordpress配置google search console失败_Wordpress在国内无法打开后台撰写新文章的解决办法...
  13. mysql中url的格式_MySQL JDBC URL中的格式以及参数介绍
  14. C++11创建线程的三种方式
  15. 数据分析师,数据挖掘工程师和数据研发工程师有什么区别?
  16. java 定时为每月10号,Spring 定时任务如何实现每周一某个时间执行?
  17. js验证固定电话(座机)、手机号码
  18. 淘宝天猫店铺商品API,店铺商品分类接口代码对接教程
  19. 提交辞职申请时,领导挽留,要不要留下来
  20. Tennessee Eastman(TE)田纳西-伊斯曼仿真平台应用试验与分析

热门文章

  1. 【数据结构-查找】4.五千字干活长文带你搞懂——B树和B+树
  2. 08 ORA系列:ORA-01861 文字与格式字符串不匹配
  3. 深入理解和使用Oracle中with as语句以及与增删改查的结合使用
  4. 10--MySQL数据查询应用(实战)(一)
  5. 一文搞懂深度优先搜索、广度优先搜索(dfs、bfs)
  6. 灰暗而空虚的景色β(数学思维题)
  7. Android中SharedPreferences与Editor的使用
  8. Oracle inline view 简介
  9. 线性回归数据_数据科学笔记(三)——线性回归
  10. char转成string_真没想到,一个小小的String居然还有这么多窍门?