zoukankan      html  css  js  c++  java
  • python os模块

    os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系统平台如 nt 或 posix中的特定函数间自动切换,从而能实现跨平台操作

       

    1.文件操作

    build-in函数 open 实现文件创建, 打开, 修改文件的操作

    import os

    import string

       

    def replace(file, search_for, replace_with):

    # replace strings in a text file

       

    back = os.path.splitext(file)[0] + ".bak"

    temp = os.path.splitext(file)[0] + ".tmp"

       

    try:

    # remove old temp file, if any

    os.remove(temp)

    except os.error:

    pass

       

    fi = open(file) #

    fo = open(temp, "w")        #

       

    for s in fi.readlines():

    fo.write(string.replace(s, search_for, replace_with))

       

    fi.close()

    fo.close()

       

    try:

    # remove old backup file, if any

    os.remove(back)

    except os.error:

    pass

       

    # rename original to backup...

    os.rename(file, back)

       

    # ...and temporary to original

    os.rename(temp, file)

       

    # try it out!

       

    file = "c:samplessample.txt"

       

    replace(file, "hello", "tjena")# search for the string 'hello' and replace with 'tjena

    replace(file, "tjena", "hello")

       

    2. 目录操作

    os 模块包含了许多对目录操作的函数

    listdir 函数返回给定目录下的所有文件(包括目录)

       

    import os

    for file in os.listdir("c:qtest"):

    print file

       

    getdir 获取当前目录

    chdir 改变当前路径

       

    cwd = os.getcwd()

    print "1", cwd

    # go down

    os.chdir("c:qtest")

    print "2", os.getcwd()

    # go back up

    os.chdir(os.pardir)#返回当前目录的父目录

    print "3", os.getcwd()

       

    makedirs removedirs 生成和删除目录

    makedirs可以生成多层递归目录, removedirs可以删除多层递归的空目录,若目录中有文件则无法删除

       

    import os

    os.makedirs("c:\test\multiple\levels")

    fp = open("c:\test\multiple\levels\file.txt", "w")

    fp.write("inspector praline")

    fp.close()

    # remove the file

    os.remove("c:\test\multiple\levels\file.txt")

    # and all empty directories above it

    os.removedirs("c:\test\multiple\levels")

       

    mkdir 和 rmdir只能处理单级目录操作.

    若要删除非空目录, 可使用 shutil模块中的rmtree函数

       

    3. 文件属性的操作

    import os

    import time

    file = 'c:qtesteditor.pyc'

       

    st = os.stat(file)

    print "state", file

       

    def dump(st):

    mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime = st

    print "- size:", size, "bytes"

    print "- owner:", uid, gid

    print "- created:", time.ctime(ctime)

    print "- last accessed:", time.ctime(atime)

    print "- last modified:", time.ctime(mtime)

    print "- mode:", oct(mode)

    print "- inode/dev:", ino, dev

       

    print dir(st)

    print        

    dump(st)

    # print

       

    fp = open(file)

    st = os.fstat(fp.fileno())

    print "fstat", file

    dump(st)

       

    remark: os.stat(path/file)返回文件的对应属性值st_mode (protection bits), st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (user id of owner), st_gid (group id of owner), st_size (size of file, in bytes), st_atime (time of most recent access), st_mtime (time of most recent content modification), st_ctime (platform dependent; time of most recent metadata change on Unix, or the time of creation on Windows):

    os.fstat(path/file)

    Return status for file descriptor fd, like stat().

       

  • 相关阅读:
    JQ和Js获取span标签的内容
    JS获取子节点、父节点和兄弟节点的方法实例总结
    JS实现系统时间(自动)
    CSS font-family 属性
    网页中导入特殊字体@font-face属性详解
    ****HTML模板资源汇总
    ***XAMPP:报错 Unable to load dynamic library的解决方法
    2016年宜昌楼市将迎来史上最激烈一战
    北大资源重磅来宜--宜昌未来商业中心将诞生
    HTML5调用传感器的资料汇总
  • 原文地址:https://www.cnblogs.com/mecy1222/p/6962916.html
Copyright © 2011-2022 走看看