一、递归方法

 def size(path):  #给定一个初始的文件夹路径
num = 0     
list_name = os.listdir(path)  #利用os模块方法,以列表的形式获得该文件夹下面的所有文件或者文件夹名称
for i in list_name:
file_name = os.path.join(path,i)  #循环的i是文件或者文件夹的名称,需要拼接出绝对路径
if os.path.isdir(file_name):      #判断该路径是否为文件夹
num1 = size(file_name)      #***此处一定要用一个变量来接收递归函数的返回值
num += num1
else:
num += os.path.getsize(file_name)   #计算文件的大小
return num
print(size("F:\pythonhomework"))

二、循环、堆栈思想

 def func(lst):  #先将文件夹的路径以列表的形式传人函数
size = 0
while lst:  #列表只要不为空就执行循环
path = lst.pop()   #将列表中最后一个路径取出来
list_name = os.listdir(path)
for i in list_name:
path_name = os.path.join(path,i)
if os.path.isdir(path_name):
lst.append(path_name)  #***如果是文件夹就将该路径加到列表中
else:
size += os.path.getsize(path_name)
return size
lst = ["F:\pythonhomework"]
print(func(lst))

利用os模块求一个文件夹的大小。的更多相关文章

  1. linux怎么查看一个文件夹的大小

    linux查看一个文件夹的大小的命令为: -lh 该文件夹的完整路径 例,查询/var文件夹的大小: -lh /var du 递归查询该路径下所有文件的大小(若不加任何参数,则显示文件夹内的所有文件, ...

  2. [python学习篇] [os模块] [2]删除文件夹

    def deleteDirectory(self,current_path): if not os.path.exists(current_path): self.logger.info(curren ...

  3. 通过Python计算一个文件夹大小

    在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子 ...

  4. 把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案

    把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败在python3中调用会成功,但是调用不能成功 解决办法是: 在该文件夹下加入空文件__init__.py python2会把该 ...

  5. Python遍历一个文件夹下有几个Excel文件及每个Excel文件有几个Sheet

    一. 解决问题: 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判 ...

  6. 转移大于2m的pdf文件到另外一个文件夹

    转移大于2m的pdf文件到另外一个文件夹 remove_moret2M_pdfs.py # -*- coding: utf-8 -*- """ Created on Mo ...

  7. Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

    这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...

  8. python基础:os模块中关于文件/目录常用的函数使用方法

    Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...

  9. os模块中关于文件/目录常用的函数使用方法

    os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...

随机推荐

  1. 作为注册中心Eureka比Zookeeper好在哪里?

    作为注册中心Eureka比Zookeeper好在哪里?    著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性),A(可用性)和P(分区容错性).由于分区容错性P在是分布式系统中必须要保证 ...

  2. LeetCode 674. 最长连续递增序列(Longest Continuous Increasing Subsequence) 18

    674. 最长连续递增序列 674. Longest Continuous Increasing Subsequence 题目描述 给定一个未经排序的整型数组,找到最长且连续的递增序列. Given ...

  3. python爬虫-爬取你想要的小姐姐

    一.准备 1. 原地址 2. 检查html发现,网页是有规则的分页, 最大图片的class为pic-large 二.代码 import requests import os from bs4 impo ...

  4. JUC之AbstractQueuedSynchronizer原理分析 - 独占/共享模式

    1. 简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作.AQS 是很多同步器的基础框架. R ...

  5. Windows10下Anaconda+Tensorflow+Keras环境配置

    注意!注意!!注意!!! (重要的事情说三遍) 安装前检查: 1.Tensorflow不支持Anaconda2,Tensorflow也不支持python2.7和python3.7(满满的辛酸泪!) 2 ...

  6. 剑指offer27:按字典序打印出该字符串中字符的所有排列

    1 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: ...

  7. 使用keepalived实现kubenetes apiserver高可用

    # 安装 nginx yum install nginx -y # 配置nginx4层代理 /etc/nginx/nginx.conf stream { upstream kube-apiserver ...

  8. Markdown 语法 (转载)

    Markdown 语法整理大集合2017   1.标题 代码 注:# 后面保持空格 # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 ####### h7 // ...

  9. Linux命令格式及7个常见终端命令

    Linux命令格式 Linux常见的7个终端命令

  10. 【SCALA】3、模拟电路

    Simulation package demo17 abstract class Simulation { type Action = () => Unit case class WorkIte ...