• Python os模块简单应用


    import os

     os模块里面主要是一些和操作系统有关的操作,其他高深的比如一些系统的指令什么的就先不讨论了,这里列举一下我们可能会常用的文件,文件夹的操作

    具体os模块的说明可以参考官方网址:

    https://docs.python.org/zh-cn/3/library/os.html

    • 创建,移动,复制文件,文件夹(不能删除文件夹,后面会讲到,删除文件夹要用shutil模块)
    • 文件路径和名称处理

    1.获取当前python程序运行路径

    import os
    print(os.getcwd())

    2.列出当前程序文件夹下的所有文件和文件夹

    os.listdir()

    3.列出指定某文件夹下的所有文件和文件夹

    os.listdir(指定的绝对路径或相对路径)

    4.os.path.isdir(要判断的文件或者文件夹路径) 是文件还是文件夹,如果是目录返回true,否则false

    import os
    files= os.listdir()
    
    for file in files:
        print(file,os.path.isdir(file))

    例如: 

     5.os.scandir() 列出目录的文件,文件夹

    import os
    
    for file in os.scandir():
        print(file.name,file.path)

    通过这种方式可以把文件名和路径打出来.

    6.os.walk(指定的绝对路径或相对路径)

    以上说的那几种操作是找出来目录和文件,而不会把找到的目录里面的文件展示出来

    os.walk() 会把指定路径的文件和文件夹都展示出来的,包括系统隐藏的文件

    其中 dirpath是文件夹路径

    dirnames 是dirpath这个文件夹下的子文件夹列表

    files是dirpath这个文件夹里的文件列表

    例如:

    import os
    
    for dirpath,dirnames,files in os.walk('./'):
        print(f'发现文件夹:{dirpath}')
        print(files)

    7.os.remove('filename')       #删除一个文件  此处不多啰嗦,简单理解即可

    8.os.makedirs('dirname/dirname')     #可生成多层递规目录

    9.os.rmdir('dirname')     #删除非空目录,目录里面有文件和目录的话则删除不了的;例如:

    import os
    
    # os.getcwd()
    # os.listdir(r'd:/TING/')
    os.mkdir(r'd:/ting/tt/dd')
    # os.rmdir(r'd:/TING/tt/dd/')

       当建立了ting/tt/dd 目录后,我直接删除tt目录就会报错,而dd文件目录下面是没有东西的,直接删除dd目录是可以的

    10.os.rename("oldname","newname")    #重命名文件

    11.os.system()    #运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell

      此模块在python交互模式下运行是ok的,但是在第三方编译器上面好像不太对,比如我用jupter notebook上面使用的是只出返回值0或者1,待继续研究;

    12.os.path.abspath(path)    #显示当前绝对路径

    13.os.path.dirname(path)    #返回该路径的父目录

    14.os.path.basename(path)    #返回该路径的最后一个目录或者文件,如果path以/或结尾,那么就会返回空值。

    15.os.path.isfile(path)     #如果path是一个文件,则返回True

          这种比较好理解,判断指定的路径是否文件类型

    16.os.path.isdir(path)    #如果path是一个目录,则返回True 

           判断指定路径是否目录类型

    17.os.path.split(path)  #将path分割成路径名和文件名。(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

    import os
    os.path.split('D:TING	tdd')

    out:

    ('D:\TING	t', 'dd')
    此方法感觉不太完善,不如直接用str的split方法,指定分隔符

    18.os.path.join(path,name)   #连接目录与文件名或目录 结果为path/name

         这个方法还是挺有用的,比如做爬虫的时候经常会把爬到的内容设置到不同的目录,然后目录下面又要设置不同的文件,假设有如下情况:

    通过分析某个小说网站的源代码,获取到了某篇小说有8章内容,于是我们根据爬取的网页来生成本地文件目录:

    假设如下:

    本地的文件目录:   D:大话西游

    然后通过源码分析,总共有8章,

    于是我们可以这么处理,

    mulu = 'D:大话西游'

    zhangjie = '{}.txt'.format(num)

    os.path.join(mulu,zhangjie)

  • 相关阅读:
    zoj_3710Friends
    javamail例子
    HttpURLConnection类的用法
    发送邮件协议
    栈的定义
    tomcat中添加jconsole服务
    HttpURLConnection类的用法
    javamail例子
    tomcat中添加jconsole服务
    栈的定义
  • 原文地址:https://www.cnblogs.com/tinglele527/p/14765834.html
Copyright © 2020-2023  润新知