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\tt\dd')

out:

('D:\\TING\tt', '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)

 

posted @ 2021-05-13 19:03  另一个起点  阅读(149)  评论(0编辑  收藏  举报