文章内容

2022/4/8 19:43:44,作 者: 黄兵

Python 遍历文件以及删除文件

使用 Python 遍历文件,我们使用 os.walk(folder) 这个函数,其中 folder 就是我们需要遍历的文件最顶层。

例如下面有这样的一个文件结构:

base/
├── fileA.txt
├── fileA2.xls
├── fileA3.xls
├── fileA4.pdf
├── sub1
│   ├── fileB.txt
│   ├── fileB2.xls
│   └── fileB3.pdf
└── sub2
    ├── fileB.txt
    ├── fileC2.xls
    └── fileC3.pdf

我们可以使用下面的 Python 代码遍历所有文件:

def findAllFile(base):
    for root, ds, fs in os.walk(base):
        for f in fs:
            yield f

例如我们需要获取上面的所有文件:

import os

def findAllFile(base):
    for root, ds, fs in os.walk(base):
        for f in fs:
            yield f

def main():
    base = './base/'
    for i in findAllFile(base):
        print(i)

if __name__ == '__main__':
    main()

结果如下:

fileA.txt
fileA2.xls
fileA3.xls
fileA4.pdf
fileB3.pdf
fileB.txt
fileB2.xls
fileC.txt
fileC3.pdf
fileC2.xls

如果我们需要获取完整路径,我们可以使用下面代码:

def findAllFile(base):
    for root, ds, fs in os.walk(base):
        for f in fs:
            fullname = os.path.join(root, f)
            yield fullname

如果我们需要删除文件,下面是删除文件的一些代码介绍:

import os
# path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除
os.remove(path)  
# path是文件夹路径,注意文件夹下面的文件为空才能被删除
os.rmdir(path)  
# unlink的功能和remove一样是删除一个文件,但是删除一个正在使用的文件会报错。
os.unlink('F:\新建文本文档.txt')  

👇面是递归地删除目录。如果子目录成功被删除,则会删除父目录,子目录没成功删除,将抛异常。

import os
os.removedirs(path)
分享到:

发表评论

评论列表