首页 > 编程学习 > 【Python入门】文件夹操作

【Python入门】文件夹操作

发布时间:2022/11/16 16:46:14

目录

一、实验目标

二、实验难点

三、实验内容 

实验内容1:对D盘下某文件夹的所有文件和文件夹进行遍历,返回temp.txt文件对所有地址(递归和非递归方式实现) 

实验内容2:对D盘下某文件夹的所有文件和文件夹进行遍历,要求输出创建日期在2022年9月1日到2022年11月1日之间的所有文件,输出这些文件的完整的路径名 


 

一、实验目标

掌握如何对文件夹以及文件进行操作 

二、实验难点

文件夹的递归访问 

三、实验内容 

实验内容1:对D盘下某文件夹的所有文件和文件夹进行遍历,返回temp.txt文件对所有地址(递归和非递归方式实现) 

#递归方法
import os
from os import listdir
from os.path import join, isdir
def visitFile(directory):
    for file in os.listdir(directory):
        filename=join(directory,file)
        if isdir(filename):
            print(filename)
            visitFile(filename)
        else:
            print(filename)
visitFile(r"D:\1") 

#非递归方法
import os
from os import listdir
from os.path import join, isdir
def visitFile(directory):
    dir_directory=[directory]
    cur_directory=dir_directory.pop(0)
    while isdir(cur_directory):
        for file in os.listdir(cur_directory):
            filename=join(cur_directory,file)
            if isdir(filename):                
                dir_directory.append(filename)
                print(filename)
            else:
                print(filename)
        if len(dir_directory):
            cur_directory=dir_directory.pop(0)
        else:
            return 
visitFile(r"D:\1")   

实验内容2:对D盘下某文件夹的所有文件和文件夹进行遍历,要求输出创建日期在2022年9月1日到2022年11月1日之间的所有文件,输出这些文件的完整的路径名 

#由于今天是2022.11.2号,所以我创建文件的时间都是超出了问题所需的时间,因此没有任何输出
import os
from os import listdir,path
from os.path import join, isdir
def visitFile(directory):
    for file in os.listdir(directory):
        filename=join(directory,file)
        if isdir(filename):
            if datetime(2022,9,1,0,0,0).timestamp()<=path.getctime(r"D:\1")<=datetime(2022,10,31,23,59,59).timestamp():
                print(filename)
            visitFile(filename)
        else:
            if datetime(2022,9,1,0,0,0).timestamp()<=path.getctime(r"D:\1")<=datetime(2022,10,31,23,59,59).timestamp():
                print(filename)
visitFile(r"D:\1") 

#如果把范围增大,变成:要求输出创建日期在2022年9月1日到2022年12月1日之间的所有文件,输出这些文件的完整的路径名,那么就可以输出了
import os
from os import listdir,path
from os.path import join, isdir
def visitFile(directory):
    for file in os.listdir(directory):
        filename=join(directory,file)
        if isdir(filename):
            if datetime(2022,9,1,0,0,0).timestamp()<=path.getctime(r"D:\1")<=datetime(2022,11,30,23,59,59).timestamp():
                print(filename)
            visitFile(filename)
        else:
            if datetime(2022,9,1,0,0,0).timestamp()<=path.getctime(r"D:\1")<=datetime(2022,11,30,23,59,59).timestamp():
                print(filename)
visitFile(r"D:\1")  

 

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式