• python之os模块


    在查找大量文件或者获取相关路径等操作时主要依赖于OS模块。

    1、查询当前使用平台

    1
    2
    3
    >>>os.name
    'posix' # 代表 Linux
    ‘nt’ # 代表windows

    2、当前路径和文件

    1
    2
    3
    4
    5
    6
    os.getcwd() # 返回当前工作目录
    os.getcwdu() # 返回一个当前工作目录的Unicode对象。
    os.listdir(path) # 返回path目录下的所有文件列表。
     
    >>> os.listdir('/opt')
    ['.script''registry''haproxy.cfg''chess''test''gitlog''c.txt''a.py''file.py''mail.sh''a.txt''b.txt''a.txt.bak''.a.txt.swap']

    3、绝对路径

    1
    2
    3
    4
    5
    os.path.abspath(path) #返回path的绝对路径
     
    >>> os.chdir('/usr/local/src'# 将当前的工作目录更改为/usr/local/src
    >>> os.path.abspath(os.getcwd())
    '/usr/local/src'

    4、执行系统命令

    1
    2
    3
    4
    5
    os.system() # 运行shell命令
     
    >>>os.system('cmd'# 在Windows下打开终端
    >>>os.system('ls'#在Linux下查看当前目录下的所有文件
    apache-jmeter-4.0

    5、查看文件名或者目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> os.path.split('/opt/mail.sh')  # 将目录和文件名分开为元组
    ('/opt''mail.sh')
     
    >>> os.path.join('/opt','gitlog','log','20180411.log')  #将path1,path2...进行组合,若path2为绝对路径,则会将path1删除。
    '/opt/gitlog/log/20180411.log'
    >>> os.path.join('/opt','/gitlog','log','20180411.log')
    '/gitlog/log/20180411.log'
     
    >>> os.path.dirname('/opt/gitlog/log/20180411.log'# 返回path中的目录(文件夹部分),结果最后不包含目录‘/’ 或‘’
    '/opt/gitlog/log'
     
    >>> os.path.basename('/opt/gitlog/log/20180411.log'# 返回path中的文件名
    '20180411.log'<br><br>os.walk(path) # 递归的返回paht下的目录(包含path目录)、子目录、文件名的三元组,是一个迭代器<br>>>>os.walk('/opt')<br><generator object walk at 0x7f6b03c23cd0>

    6、创建目录

    1
    2
    3
    4
    os.mkdir(path[,mode]) #以数字mode的mode创建一个名为path的文件夹<br>os.mkdir('/opt/os') # 创建目录os,只能创建单层目录
    >>> os.makedirs('/opt/o/s/os'# 创建多级目录
    >>> os.listdir(os.getcwd())
    ['.script''registry''haproxy.cfg''chess''test''gitlog''c.txt''a.py''file.py''mail.sh''os''o''a.txt''b.txt''a.txt.bak''.a.txt.swap']

    7、删除文件或目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> os.rmdir('/opt/os')  # 删除os目录,只能是一层目录,而且是空目录
    Traceback (most recent call last):
      File "<stdin>", line 1in <module>
    OSError: [Errno 39] Directory not empty: '/opt/os'
     
    >>> os.remove('/opt/os/a'# 删除文件a (必须是文件)
     
    >>> os.removedirs('/opt/o/s/os'# 删除多级目录,必须为空目录
    >>> os.listdir('/opt')
    ['.script''registry''haproxy.cfg''chess''test''gitlog''c.txt''a.py''file.py''mail.sh''os''a.txt''b.txt''a.txt.bak''.a.txt.swap']

    8、文件相关操作

    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
    >>> os.path.getmtime('/opt/mail.sh'# 返回文件或目录的最后修改时间,结果为秒数
    1523500891.0531387
     
    >>> os.path.getatime('/opt/mail.sh'# 返回文件或目录的最后访问时间,结果为秒数
    1523500903.6000335
     
    >>> os.path.getctime('/opt/mail.sh'# 返回文件或目录的创建时间,结果为秒数
    1523500891.0711386
    # 可以结合time模块使用
     
    >>> os.path.getsize('/opt/mail.sh'# 返回文件的大小,若是目录则返回0
    7209
     
    >>> os.path.exists('/opt/mail.sh'# 判断文件或者目录是否存在,存在则返回True,否则返回False
    True
    >>> os.path.exists('/opt/a')
    False
     
    >>> os.path.isfile('/opt/mail.sh'# 判断是否为文件,是True 否 False
    True
     
    >>> os.path.isdir('/opt'# 判断是否为目录,是True 否 False
    True
     
    os.chown(path, uid, gid) # 更改文件所有者
    os.chmod(path, mode) # 更改权限
    os.unlink(path) #删除文件路径
    os.utime(path,times) # 返回指定的path文件的访问和修改的时间
    os.read(fd, n) #从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串
    os.write(fd, str#写入字符串到文件描述符 fd中. 返回实际写入的字符串长度

    9、文件或目录重命名

    1
    2
    3
    4
    5
    6
    7
    os.rename(src, dst) #重命名文件或目录,从 src 到 dst
    os.renames(old, new) #递归地对目录进行更名,也可以对文件进行更名
    >>> os.renames('a.py','/opt/os/aaa.py')
    >>> os.listdir('/opt')
    ['.script''registry''haproxy.cfg''chess''test''gitlog''c.txt''file.py''mail.sh''os''a.txt''b.txt''a.txt.bak''.a.txt.swap']
    >>> os.listdir('/opt/os')
    ['aaa.py']

    10、一些表现形式参数

      os定义了一组文件、路径在不同操作系统中的表现形式参数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Linux环境下
    >>> os.sep
    '/'
    >>> os.extsep
    '.'
    >>> os.pathsep
    ':'
    >>> os.linesep
    ' '
     
    Windows环境下
    >>> os.sep
    '\'
    >>> os.extsep
    '.'
    >>> os.pathsep
    ';'
    >>> os.linesep
    ' '

     

  • 相关阅读:
    【转】【C++】【MFC】各种数据类型大小
    【转】【C++】【MFC】关于RADIO BUTTON的使用方法
    【C++】【MFC】创建新的线程函数
    【C++】【MFC】定义全局变量的方法
    【Quartus错误】Internal Error: Sub-system: AMERGE
    【转/TCP协议编程】 基于TCP的Socket 编程
    SQL递归查询(with as)
    SQL查询月、天、周、年(MySql的实例对比)
    sql 基础语句
    经典SQL语句大全
  • 原文地址:https://www.cnblogs.com/valorchang/p/11282109.html
Copyright © 2020-2023  润新知