Python 之os模块

发布时间:2019-09-08 09:13:28编辑:auto阅读(1596)

    os模块提供了访问多个操作系统服务的功能,os模块的子模块os.path模块也包含了一些文件目录常用操作的函数。

    access(path, mode) :检测对文件的访问权限。

    >>> os.access('/root/zhu.txt', os.F_OK)
    True
    >>> os.access('/root/zhu.txt', os.R_OK)
    True
    >>> os.access('/root/zhu.txt', os.W_OK)
    True
    >>> os.access('/root/zhu.txt', os.X_OK)
    False
    os.F_OK :测试路径的存在
    os.R_OK :是否有读权限
    os.W_OK :是否有写权限
    os.X_OK :是否有执行权限


    chdir(path) :改变当前的工作目录

    os.getcwd() :显示当前的工作目录

    >>> os.getcwd()
    '/root'
    >>> os.chdir('/home')
    >>> os.getcwd()
    '/home'


    chmod(path, mode) :修改文件的权限

    >>> os.chmod('/root/zhu.txt',0700)
    >>> os.system('ls -l /root/zhu.txt')
    -rwx------. 1 root root 94 2月  24 19:08 /root/zhu.txt
    >>> os.chmod('/root/zhu.txt',0750)
    >>> os.system('ls -l /root/zhu.txt')
    -rwxr-x---. 1 root root 94 2月  24 19:08 /root/zhu.txt
    这是通过数字方法修改权限,
    还有其它模式

    chown(path, uid, gid) :改变文件的所属主和所属组

    >>> os.system('ls -l /root/zhu.txt')
    -rwxr-x---. 1 root root 94 2月  24 19:08 /root/zhu.txt
    0
    >>> os.chown('/root/zhu.txt',500,500)
    >>> os.system('ls -l /root/zhu.txt')
    -rwxr-x---. 1 zhu zhu 94 2月  24 19:08 /root/zhu.txt
    0


    os.link(src, dst) :创建一个硬链接

    >>> os.link('/root/zhu.txt','/root/taotao')
    [root@localhost ~]# ll
    总用量 32924
    -rw-r--r--. 1 root root 33692010 2月  20 02:13 mpmt-web.war
    drwxr-xr-x. 2 root root     4096 2月  24 23:38 mypython
    drwxr-xr-x. 2 root root     4096 2月  18 10:31 myshell
    drwxr-xr-x. 2 root root     4096 2月  20 02:07 source
    -rwxr-x---. 2 zhu  zhu        94 2月  24 19:08 taotao
    -rwxr-x---. 2 zhu  zhu        94 2月  24 19:08 zhu.txt


    os.listdir(path):返回一个列表,目录下面的内容

    >>> os.listdir('/root')
    ['taotao', '.Xauthority', '.bash_logout', '.bash_profile', '.cshrc', '.pythonhistory', '.bashrc', '.viminfo', 'mypython', 'zhu.txt', '.bash_history', 'mpmt-web.war', '.tcshrc', 'source', '.jboss-cli-history', '.lesshst', 'myshell']

    os.mkdir(path [, mode=0777]) :创建一个空目录


    >>> os.mkdir('/root/zzz',0700)
    >>> os.mkdir('/root/yyy')
    >>> os.system('ls -ld /root/zzz')
    drwx------. 2 root root 4096 2月  25 02:38 /root/zzz
    0
    >>> os.system('ls -ld /root/yyy')
    drwxr-xr-x. 2 root root 4096 2月  25 02:37 /root/yyy
    0
    模式默认为777,

    os.makedirs(path [, mode=0777]):递归创建目录

    >>> os.makedirs('/root/aaa/bbb')
    >>> os.listdir('/root/aaa')
    ['bbb']
    递归创建目录

    os.remove(path):删除一个文件

    >>> os.remove('/root/aaa/bbb')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    OSError: [Errno 21] Is a directory: '/root/aaa/bbb' #删除目录出错
    >>> os.remove('/root/taotao')
    #只能删除文件


    os.removedirs(path):删除空目录,若是上层目录也是空目录,便一起删除

    >>> os.removedirs('/root/aaa/bbb')
    >>> os.removedirs('/root/aaa/')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.6/os.py", line 170, in removedirs
        rmdir(name)
    OSError: [Errno 39] Directory not empty: '/root/aaa/'


    os.rename(old, new):对文件或目录进行重命名

    >>> os.rename('/root/aaa','/root/mmm')
    >>> os.rename('/root/zhu.txt','/root/tao.txt')


    os.rmdir() :删除一个空目录

    >>> os.rmdir('/root/mmm')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    OSError: [Errno 39] Directory not empty: '/root/mmm'
    >>> os.rmdir('/root/nnn')

    os.symlink(source, link_name):创建一个软连接

    >>> os.symlink('/root/tao.txt','/root/zhu.txt')
    >>> os.system('ls -l /root/*.txt')
    -rwxr-x---. 1 zhu  zhu  94 2月  24 19:08 /root/tao.txt
    lrwxrwxrwx. 1 root root 13 2月  25 03:01 /root/zhu.txt -> /root/tao.txt
    0












































































关键字