python 实现生成目录树及显示文件大小

没啥技术含量,大家都说没用,只不过算法还有点意思。自己憋出来的,不知道是不是跟别人的一样。做递归得到子文件夹以及文件并不难,但是能够打印出树形,层次关系展示出来,有些难度。

比如

1--1

     2--1

          2

          3--1

               2

               3

     3--1

          2

          3

 

交错的层级关系,刚开始感觉很乱没有想明白,后来终于抓住了关键。只要算出每个层次的深度,就好办了。

我定义了一个rank,进入一个子文件夹时,让rank+1,遍历完子文件夹rank就-1。

如图充分说明了递归、遍历的顺序以及rank值变化:(丑了点。。。)


下面放代码:

 

 

生成树如下。没有微软tree生成的好。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以通过Python文件操作来实现将数据写入文件并在文件大小达到一定阈值时生成新的文件。 下面是一种可能的实现方式: 1. 定义文件大小阈值(例如10M)以及文件名前缀和后缀。 2. 打开第一个文件,写入文件头信息。 3. 循环写入数据,当文件大小达到阈值时,关闭当前文件生成下一个文件。 4. 重复步骤3,直到所有数据都写入完毕。 下面是一个简单的示例代码: ```python import os MAX_FILE_SIZE = 10 * 1024 * 1024 # 10M FILE_PREFIX = 'output' FILE_SUFFIX = '.txt' file_num = 1 file_size = 0 def open_file(): global file_num, file_size filename = f'{FILE_PREFIX}_{file_num:03d}{FILE_SUFFIX}' file_num += 1 file_size = 0 return open(filename, 'w') with open_file() as f: f.write('Header\n') with open('input.txt') as input_file: with open_file() as output_file: for line in input_file: output_file.write(line) file_size += len(line) if file_size >= MAX_FILE_SIZE: output_file.close() output_file = open_file() ``` 注意这个实现方式是在每写入一行数据后就检查文件大小是否超过阈值,因此会有一定的性能损失。如果需要更高的写入性能,可以采用缓冲区写入一定大小的数据后再检查文件大小。 ### 回答2: 使用Python可以很方便地将文件写入到指定大小,并且在本目录下自动生成文件。 首先,我们需要确定写入的文件大小为10M。由于计算机中文件大小以字节数为单位,10M等于10*1024*1024字节。 接下来,我们可以使用Python文件写入功能将数据写入到文件中。在写入过程中,我们可以设置一个循环,每次写入一定数量的字节数据,直到达到指定的文件大小。 具体的代码实现如下所示: ```python file_size = 10 * 1024 * 1024 # 文件大小为10M,单位为字节 chunk_size = 1024 # 每次写入的字节数 file_count = 1 # 文件计数器,用于生成新的文件file_path = f"file_{file_count}.txt" # 文件路径,初始文件名为file_1.txt with open(file_path, 'w') as file: written_size = 0 # 已写入的字节数 while written_size < file_size: # 生成一定数量的数据 data = 'A' * chunk_size # 写入数据 file.write(data) # 更新已写入的字节数 written_size += chunk_size # 如果已写入的字节数达到了文件大小生成新的文件名 if written_size >= file_size: file_count += 1 file_path = f"file_{file_count}.txt" file.close() file = open(file_path, 'w') file.close() print("文件写入完成!") ``` 以上代码使用了`open()`函数打开文件,并使用`'w'`模式进行写入操作。每次写入`chunk_size`大小的数据,当已写入的字节数达到文件大小时,会生成新的文件名,并打开新的文件进行写入。 当文件大小达到10M时,会自动在当前目录生成新的文件文件名为file_2.txt、file_3.txt,依次类推。 注意:实际运行前,请确保当前目录下没有同名的文件,以免覆盖已有的文件。 ### 回答3: 可以使用Python中的文件操作方法来实现将数据写入到10M大小文件并自动在本目录生成文件的功能。具体实现方式如下: 1. 首先,我们可以使用`open()`函数创建一个文件,并指定文件名和写入模式为二进制模式`"wb"`。 2. 接着,我们使用循环语句来写入数据,直到文件大小达到10M为止。在每次循环中,可以使用`write()`方法向文件中写入数据。 3. 在每次写入数据后,我们可以通过`os.path.getsize()`函数获取当前文件大小,并判断是否达到了10M。如果达到了,我们可以关闭当前文件,并使用`open()`函数创建一个新的文件进行写入。 4. 值得注意的是,在每次生成新的文件时,我们可以使用一个计数器来标识当前文件的序号,从而生成带有序号的文件名,方便区分。 以下是一个简单的示例代码,实现了将数据写入到10M大小文件生成文件的功能: ``` import os def write_file(data): file_size_limit = 10 * 1024 * 1024 # 文件大小限制为10M file_count = 1 # 文件序号计数器 file_name = f"file_{file_count}.txt" # 初始文件名 with open(file_name, "wb") as file: written_size = 0 # 当前文件已写入数据大小 for chunk in data: file.write(chunk) written_size += len(chunk) if written_size >= file_size_limit: file.close() file_count += 1 file_name = f"file_{file_count}.txt" with open(file_name, "wb") as new_file: file = new_file written_size = 0 data = b"你的数据" # 替换为你要写入文件的数据 write_file(data) ``` 此代码将根据提供的数据,在当前目录下自动生成大小为10M的文件,并以`file_1.txt`,`file_2.txt`等方式进行命名,直到数据写入完毕。注意,这里的`data`是二进制数据,如果你要写入文本数据,可以将其转换为二进制形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙鞥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值