• Python OS模块


    os模块

    举例介绍os模块中 os.name、os.uname、os.listdir、os.stat、os.chmod、os.chown 六种方法的使用

    os.name
    os.uname()
    sys.platform
    os.listdir(path=None)
    os.stat(path, *, dir_fd=None, follow_symlinks=True)
    os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)
    os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)

     os.name,os.uname()

    #linux
    In [1]: import os
    In [2]: os.name #windows是nt,linux是posix
    In [3]: os.uname() #linux支持显示
    

      

    os.listdir(path=None)

    #linux
    In [4]: import sys
    In [5]: sys.platform #windows显示win32,linux显示linux
    In [6]: os.listdir() #不给参数默认输出当前路径下所有文件
    In [7]: os.listdir('/home/python') #可以指定目录
    

      

    os 也有open、read、write等方法,但是太低级,建议使用内建函数open、read、write。

    os.stat(path, *, dir_fd=None, follow_symlinks=True)

    follow_symlinks True返回文件本身信息,Flase且如果是软链接则显示软链接本身。

    #linux下先创建一个软链接文件
    $ touch test
    $ ln -s test t1
    
    
    In [8]: os.stat('test')    #查看文件状态信息
    Out[8]: os.stat_result(st_mode=33188, st_ino=1478876, st_dev=64768, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1509156704, st_mtime=1509156704, st_ctime=1509156704)
    
    In [9]: os.stat('t1')   #不指定follow_symlinks选项(True)等同linux下stat -L功能
    Out[9]: os.stat_result(st_mode=33188, st_ino=1478876, st_dev=64768, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1509156704, st_mtime=1509156704, st_ctime=1509156704)
    
    In [13]: os.stat('t1',follow_symlinks=False) #如果follow_symlinks指定为False,并且路径的最后一个元素是符号链接,chmod将修改符号链接本身,而不是链接指向的文件。
    Out[13]: os.stat_result(st_mode=41471, st_ino=1423520, st_dev=64768, st_nlink=1, st_uid=0, st_gid=0, st_size=4, st_atime=1509156724, st_mtime=1509156722, st_ctime=1509156722)
    
    In [15]: oct(33188)   #十进制的权限33188转为八进制,权限644
    Out[15]: '0o100644'
    
    In [16]: oct(41471)   #权限777
    Out[16]: '0o120777'
    
    In [17]: !stat test
    权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
    
    In [18]: !stat t1
    权限:(0777/lrwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
    

      

    os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)

    In [26]: with open('test2','w') as f: #创建一个文件
    ...: f.write('test2')
    ...:
    
    In [29]: with open('test2','r') as f:
    ...: content = f.read()
    ...: print(content)
    ...: 
    test2
    
    In [30]: !stat test2
    权限:(0664/-rw-rw-r--) Uid:( 1000/ python) Gid:( 1000/ python)
    
    In [32]: os.chmod('test2',0o777)   #修改权限
    
    In [33]: os.stat('test2')
    Out[33]: os.stat_result(st_mode=33279, st_ino=1423521, st_dev=64768, st_nlink=1, st_uid=1000, st_gid=1000, st_size=5, st_atime=1509158320, st_mtime=1509158274, st_ctime=1509158374)
    
    In [34]: !stat test2
    权限:(0777/-rwxrwxrwx) Uid:( 1000/ python) Gid:( 1000/ python)
    

      

    os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)

    改变文件的属主、属组,但需要有足够的权限(root?)

    In [44]: os.chown('test2',1001,1001) #权限不足,当前运行用户是python
    ---------------------------------------------------------------------------
    PermissionError Traceback (most recent call last)
    <ipython-input-44-ebd0d03ffe74> in <module>()
    ----> 1 os.chown('test2',1001,1001)
    
    PermissionError: [Errno 1] Operation not permitted: 'test2'
    

      

    End

  • 相关阅读:
    动态规划法(八)最大子数组问题(maximum subarray problem)
    动态规划法(九)想要更多例子?
    动态规划法(五)钢条切割问题(rod cutting problem)
    MySql排序函数
    Mysql 分组函数查询
    MySql单行函数
    MySql常见的函数
    MySql常见的条件查询
    MySql的一些基础查询
    MySql资料总全
  • 原文地址:https://www.cnblogs.com/i-honey/p/7746247.html
Copyright © 2020-2023  润新知