python 删除文件和读取文件

import os
os.walk(path)

path是指想要遍历的文件夹的路径

这个函数得到的结果是一个或多个tuple,个数取决于路径下是否有文件夹:如果没有文件夹的话,那么只有一个tuple,如果有的话,假如有3个,那么就会有4个tuple。

而每个tuple中有三项:

1.当前文件夹的路径(str类型)

2.当前文件夹中的所有文件夹名称(list类型)

3.当前文件夹中所有文件的名称

os.listdir(path)

listdir()函数能得到文件夹下所有文件(包括文件夹)的名称,但是无法获取子文件夹的状态

import os
path = "D:/Python34/news" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
s = []
for file in files: #遍历文件夹
     if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开
          f = open(path+"/"+file); #打开文件
          iter_f = iter(f); #创建迭代器
          str = ""
          for line in iter_f: #遍历文件,一行行遍历,读取文本
              str = str + line
          s.append(str) #每个文件的文本存到list中
print(s)

  

top = 'D:\\卷烟厂资料\\python\\tag_data\\tag_data_dir'
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
        print('删除完成',name)

能删除tag_data_dir下的所有文件,但是保留着空的文件夹。

浏览目录下的所有子文件夹,并删除满足条件的文件夹(文件夹命名是日期)

import os
import datetime
import shutil

dayEx = 7
rootDir = "D:\\"


def clean_dir(path):
    for root, dirs, files in os.walk(path):
        for dir_name in dirs:
            try:
                datedir = datetime.datetime.strptime(dir_name, "%Y-%m-%d")
                if (datetime.datetime.now() - datedir).days > dayEx:
                    print("rm %s" % dir_name)
                    shutil.rmtree(os.path.join(root, dir_name))
            except:
                continue


clean_dir(rootDir)