zoukankan      html  css  js  c++  java
  • py库:os、shutil、pathlib

    https://www.cnblogs.com/MnCu8261/p/5494807.html  shutil模块

    http://blog.csdn.net/rozol/article/details/71422712  操作系统与路径 模块(os / os.path / pathlib)

    os模块和shutil模块:

    • os模块提供了对目录或者文件的新建、删除、查看文件属性,还提供了对文件以及目录的路径操作
    • shutil则就是对os中文件操作的补充。移动、复制、打包、压缩、解压

    os模块

    • os.getcwd()                              得到当前工作目录,即当前Python脚本工作的目录路径
    • os.listdir()                                 返回指定目录下的所有文件和目录名
    • os.remove()                             函数用来删除一个文件
    • os.removedirs(r"cpython")           删除多个目录
    • os.path.isfile()                               检验给出的路径是否是一个文件
    • os.path.isdir()                               检验给出的路径是否是一个目录
    • os.path.isabs()                             判断是否是绝对路径
    • os.path.exists()                            检验给出的路径是否真地存在
    • os.path.split()                                返回一个路径的目录名和文件名
    • os.path.splitext()                           分离扩展名
    • os.path.dirname()                         获取路径名
    • os.path.basename()                     获取文件名
    • os.system()                                  运行shell命令
    • os.getenv() 与os.putenv()                         读取和设置环境变量
    • os.linesep                                                  给出当前平台使用的行终止符,Windows使用'rn',Linux使用'n'而Mac使用'r'
    • os.name                                                    指示你正在使用的平台,对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
    • os.rename(old, new)                                 重命名:
    • os.makedirs(r"c:python est")                创建多级目录
    • os.mkdir("test")                                         创建单个目录
    • os.stat(file)                                                获取文件属性
    • os.chmod(file)                                           修改文件权限与时间戳
    • os.exit()                                                     终止当前进程
    • os.path.getsize(filename)                          获取文件大小
    • os.mkdir("file")                                           创建目录
    • shutil.copyfile("oldfile","newfile")               复制文件, oldfile和newfile都只能是文件
    • shutil.copy("oldfile","newfile")                    oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
    • shutil.copytree("olddir","newdir")               复制文件夹, olddir和newdir都只能是目录,且newdir必须不存在
    • os.rename("oldname","newname")           重命名文件(目录),文件或目录都是使用这条命令
    • shutil.move("oldpos","newpos")                移动文件(目录)
    • os.remove("file")                                       删除文件
    • os.rmdir("dir")                                           删除目录, 只能删除空目录
    • shutil.rmtree("dir")                                    空目录、有内容的目录都可以删
    • os.chdir("path")                                        转换目录, 换路径
    • os.mknod("test.txt")                                  创建空文件

    通过open获取到的文件句柄,可对文件作的操作:

    • file = open("aaa.txt",a)
    • file.mode 输出读写模式。返回被打开文件的访问模式。
    • file.name 返回文件的名称
    • next()
    • file.closed 判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false
    • file.close() 关闭文件。关闭后文件不能再进行读写操作。
    • file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
    • file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
    • file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
    • file.next() 返回文件下一行。
    • file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
    • file.readline([size]) 读取整行,包括 " " 字符。
    • file.readlines([sizehint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。
    • file.seek(offset[, whence]) 设置文件当前位置
    • file.tell() 返回文件当前位置。
    • file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
    • file.write(str) 将字符串写入文件,没有返回值。
    • file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

     http://www.runoob.com/python/python-files-io.html


    pathlib模块

    from  pathlib import Path
    
    aaa = Path(__file__).parent.parent / "git" / "package.json"  # 路径。看一下这种写法
    print(aaa)
    print(aaa.stem)  # 文件名(已去掉后缀)
    print(aaa.suffix)  # 文件后缀
    print(aaa.is_dir())  # 判断是否是目录
    print(aaa.exists())  # 判断是否存在

    熟悉一下os和shutil模块,做个练习:

    将日志文件移动到同名目录中()。比如,把AAAAA_1.log、AAAAA_2.log,移动到AAAAA目录中

    import os
    import shutil
    
    os.chdir("c:/zzzzz/") # 切换路径
    
    for tmpfile in os.listdir(os.curdir):
        if os.path.isdir(tmpfile):
            print(tmpfile, "是文件夹")
        else:
            name1 = os.path.basename(tmpfile)
            tmpfile22 = "./" + name1[:-6]  # AAAAA_1.log  切掉"_1.log"这6个字符
            if not os.path.exists(tmpfile22):  # 如果没目录就创建
                os.makedirs(tmpfile22)
            shutil.move(tmpfile, tmpfile22)

    ...

  • 相关阅读:
    常量
    html5+css3 background-clip 技巧
    AJAX小结
    使用jquery来完成AJAX操作
    linux命令 cp 递归复制 带权限复制
    html标记语言 --超链接
    html标记语言 --图像标记
    html标记语言 --文本标记
    [转]linux如何修改文件或目录的权限(chmod)
    html标记语言 --格式标记
  • 原文地址:https://www.cnblogs.com/qq21270/p/8412929.html
Copyright © 2011-2022 走看看