用python编写一个程序,要求用户输入一个文件夹路径,程序需要递归地遍历该文件夹下的所有文件和子文件夹,并将所有文件的大小求和。
时间: 2023-08-31 15:42:44 浏览: 80
### 回答1:
可以使用Python内置的os模块来遍历文件夹和获取文件大小。以下是一个示例程序:
```python
import os
def calculate_size(path):
total_size = 0
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
filepath = os.path.join(dirpath, filename)
total_size += os.path.getsize(filepath)
return total_size
folder_path = input("请输入文件夹路径:")
size = calculate_size(folder_path)
print("文件夹总大小为:", size, "字节")
```
程序中使用了os.walk函数来遍历文件夹和子文件夹,os.path.join函数来获取文件路径,os.path.getsize函数来获取文件大小。最后将所有文件大小累加起来并输出。
### 回答2:
可以使用os模块中的os.walk函数来实现文件夹的递归遍历,使用os.path模块中的getsize函数来获取文件的大小。
下面是用Python编写的程序,实现了用户输入文件夹路径并递归遍历该文件夹下所有文件和子文件夹,并将所有文件的大小求和的功能:
```python
import os
def get_folder_size(path):
total_size = 0
for dirpath, dirnames, filenames in os.walk(path):
for f in filenames:
fp = os.path.join(dirpath, f)
total_size += os.path.getsize(fp)
return total_size
folder_path = input("请输入文件夹路径:")
print("文件夹的总大小为:", get_folder_size(folder_path), "字节")
```
程序中首先定义了一个`get_folder_size`函数,用于计算文件夹的总大小。在函数内部,使用了os.walk函数对文件夹进行递归遍历,遍历的结果保存在了dirpath、dirnames和filenames这三个变量中。
然后,对于每一个文件夹中的文件,通过os.path.join函数得到它们的绝对路径,并使用os.path.getsize函数获取其大小。将每个文件的大小累加到`total_size`变量中。
最后,用户需要输入一个文件夹路径,程序调用`get_folder_size`函数来计算文件夹的总大小,并输出结果。
注意:在程序运行之前,请确保文件夹路径是正确的,并且在计算机中存在该文件夹。
### 回答3:
可用以下代码用Python编写一个程序,实现用户输入一个文件夹路径,递归遍历该文件夹下的所有文件和子文件夹,并将所有文件的大小求和:
```python
import os
def get_folder_size(folder_path):
total_size = 0
for path, dirs, files in os.walk(folder_path):
for f in files:
file_path = os.path.join(path, f)
total_size += os.path.getsize(file_path)
return total_size
folder_path = input("请输入文件夹路径:")
if os.path.exists(folder_path):
total_file_size = get_folder_size(folder_path)
print("文件夹下所有文件的大小为:" + str(total_file_size) + "字节")
else:
print("文件夹路径无效,请重新输入")
```
以上程序中,首先使用`os.walk()`函数递归地遍历一个文件夹下的所有文件和子文件夹。`os.walk()`返回一个生成器,生成器的每一次迭代会返回一个包含路径、子文件夹列表和文件列表的三元组。我们可以利用这个三元组获取每个文件的完整路径,然后使用`os.path.getsize()`函数获取文件大小,并将其累加到`total_size`变量中。
最后,程序会输出文件夹下所有文件的大小总和,单位为字节(Byte)。
请注意,使用该程序时需要保证输入的文件夹路径是有效的,否则会打印出相应的错误提示。
阅读全文