编写一个程序,要求用户输入一个文件夹路径,程序需要递归地遍历该文件夹下的所有文件和子文件夹,并将所有文件的大小求和
时间: 2023-09-23 09:05:50 浏览: 87
### 回答1:
以下是使用Python编写的程序,可以实现您的需求:
```python
import os
def get_folder_size(folder_path):
total_size = 0
for dirpath, dirnames, filenames in os.walk(folder_path):
for f in filenames:
fp = os.path.join(dirpath, f)
total_size += os.path.getsize(fp)
return total_size
folder_path = input("请输入文件夹路径:")
folder_size = get_folder_size(folder_path)
print("文件夹大小为:", folder_size, "字节")
```
程序使用`os.walk()`函数遍历文件夹下的所有文件和子文件夹,并使用`os.path.getsize()`函数获取文件大小,最后将所有文件大小求和并输出。
### 回答2:
编写一个程序,要求用户输入一个文件夹路径,程序需要递归地遍历该文件夹下的所有文件和子文件夹,并将所有文件的大小求和。
首先,需要导入Python的os模块,以便使用其中的相关函数来遍历文件夹和获取文件信息。然后,可以定义一个函数来实现递归遍历文件夹的功能。
函数可以接受一个文件夹路径作为参数,并初始化一个变量sum来记录文件的总大小。使用os模块中的os.path.isdir()函数来判断传入的路径是否是一个文件夹,如果是,则获取该文件夹下的所有文件和文件夹,并对每一个文件夹进行递归调用。
如果传入的路径不是文件夹,则使用os.path.getsize()函数获取文件的大小,并将其加到sum变量上。
在遍历文件夹时,可以使用os模块中的os.listdir()函数来获取文件夹中的所有文件和文件夹的名称,然后使用os.path.join()函数来拼接完整的路径。
最后,可以在函数的最后返回sum变量的值,即为所有文件的大小总和。
以下是一个示例代码:
```python
import os
def calc_folder_size(folder_path):
sum = 0
if os.path.isdir(folder_path):
for file_name in os.listdir(folder_path):
file_path = os.path.join(folder_path, file_name)
sum += calc_folder_size(file_path) # 递归调用
else:
sum += os.path.getsize(folder_path)
return sum
# 主程序
folder_path = input("请输入文件夹路径:")
total_size = calc_folder_size(folder_path)
print("文件夹总大小为:", total_size, "字节")
```
用户可以通过输入一个文件夹路径作为程序的输入,并且程序将递归地遍历该文件夹下的所有文件和子文件夹,并将所有文件的大小求和,最后输出文件夹的总大小。
### 回答3:
你可以使用Python编写一个程序来实现这个功能。下面是一个简单的实现例子:
```python
import os
def get_folder_size(folder_path):
total_size = 0
# 遍历文件夹下的所有文件和子文件夹
for root, dirs, files in os.walk(folder_path):
for file in files:
# 每个文件的路径
file_path = os.path.join(root, file)
# 获取文件大小
try:
file_size = os.path.getsize(file_path)
except OSError:
continue
# 将文件大小累加到总大小
total_size += file_size
return total_size
# 获取用户输入的文件夹路径
folder_path = input("请输入一个文件夹路径:")
# 计算文件夹下所有文件的大小
total = get_folder_size(folder_path)
print("文件夹下所有文件的总大小为:", total, "字节")
```
这个程序使用了os模块来遍历文件夹和获取文件大小。通过`os.walk()`函数可以递归地遍历文件夹下的所有文件和子文件夹,`os.path.join()`函数用于构建每个文件的路径。在循环中,通过`os.path.getsize()`函数获取每个文件的大小,并将其累加到总大小中。最后,输出所有文件的总大小。
阅读全文