鱼C论坛

 找回密码
 立即注册
查看: 977|回复: 23

[已解决]在python里如何打印一个三级菜单?

[复制链接]
发表于 2020-3-31 13:15:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我有一个dict 我想把它所有内容print出来  忽略indent问题(这个我已经完成)

{
    "name": "dir000",
    "timestamp": "2020-02-22 14:25:44",
    "type": "dir",
    "files": [
        {
            "name": "file000",
            "timestamp": "2020-02-22 14:35:21",
            "type": "file",
            "size": 13390
        },
        {
            "name": "dir000",
            "timestamp": "2020-02-22 14:35:39",
            "type": "dir",
            "files": [
                {
                    "name": "file000",
                    "timestamp": "2020-02-22 14:39:11",
                    "type": "file",
                    "size": 8139
                },
                {
                    "name": "file001",
                    "timestamp": "2020-02-22 14:49:09",
                    "type": "file",
                    "size": 5849
                }
            ]
        },
}
print成(我不知道如何上传照片):
dir000           2020-02-22 14:25:44
      file000            2020-02-22 14:35:21       13390
      dir000             2020-02-22 14:35:39
            file000             2020-02-22 14:39:11         8139
            file001             2020-02-22 14:49:09         5849
      file001             2020-02-22 14:43:29        6313
      file002             2020-02-22 15:00:01      13315
      dir000              2020-02-22 15:14:52
以此类推。。
最佳答案
2020-3-31 14:04:48
MYSR 发表于 2020-3-31 13:30
{
    "name": "dir000",
    "timestamp": "2020-02-22 14:25:44",
from sys import stdout

def _Printer(dict,indent,file):
    if dict['type']=='file':
        file.write('\t'*indent+f"{dict['name']}\t{dict['timestamp']}\t{dict['size']}\n")
    else:
        file.write('\t'*indent+f"{dict['name']}\t{dict['timestamp']}\n")
        for i in dict['files']:
            _Printer(i,indent+1,file)

def dict_printer(dict,file=stdout):
    _Printer(dict,0,file)
用dict_printer()打印即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-31 13:18:18 | 显示全部楼层
你这个字典的可读性有点糟糕
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 13:18:54 | 显示全部楼层
非法的字典,重发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 13:29:28 | 显示全部楼层

原字典有点长 我试试能不能发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 13:30:55 | 显示全部楼层
{
    "name": "dir000",
    "timestamp": "2020-02-22 14:25:44",
    "type": "dir",
    "files": [
        {
            "name": "file000",
            "timestamp": "2020-02-22 14:35:21",
            "type": "file",
            "size": 13390
        },
        {
            "name": "dir000",
            "timestamp": "2020-02-22 14:35:39",
            "type": "dir",
            "files": [
                {
                    "name": "file000",
                    "timestamp": "2020-02-22 14:39:11",
                    "type": "file",
                    "size": 8139
                },
                {
                    "name": "file001",
                    "timestamp": "2020-02-22 14:49:09",
                    "type": "file",
                    "size": 5849
                }
            ]
        },
        {
            "name": "file001",
            "timestamp": "2020-02-22 14:43:29",
            "type": "file",
            "size": 6313
        },
        {
            "name": "file002",
            "timestamp": "2020-02-22 15:00:01",
            "type": "file",
            "size": 13315
        },
        {
            "name": "dir001",
            "timestamp": "2020-02-22 15:14:52",
            "type": "dir",
            "files": [
                {
                    "name": "file000",
                    "timestamp": "2020-02-22 15:23:20",
                    "type": "file",
                    "size": 10404
                },
                {
                    "name": "file001",
                    "timestamp": "2020-02-22 15:34:39",
                    "type": "file",
                    "size": 9293
                },
                {
                    "name": "file002",
                    "timestamp": "2020-02-22 15:49:13",
                    "type": "file",
                    "size": 19999
                },
                {
                    "name": "dir000",
                    "timestamp": "2020-02-22 15:55:54",
                    "type": "dir",
                    "files": [
                        {
                            "name": "file000",
                            "timestamp": "2020-02-22 15:57:39",
                            "type": "file",
                            "size": 10852
                        },
                        {
                            "name": "file001",
                            "timestamp": "2020-02-22 15:58:32",
                            "type": "file",
                            "size": 8319
                        },
                        {
                            "name": "file002",
                            "timestamp": "2020-02-22 16:09:44",
                            "type": "file",
                            "size": 16813
                        },
                        {
                            "name": "file003",
                            "timestamp": "2020-02-22 16:18:37",
                            "type": "file",
                            "size": 101
                        },
                        {
                            "name": "file004",
                            "timestamp": "2020-02-22 16:34:44",
                            "type": "file",
                            "size": 15301
                        },
                        {
                            "name": "file005",
                            "timestamp": "2020-02-22 16:49:20",
                            "type": "file",
                            "size": 2693
                        },
                        {
                            "name": "file006",
                            "timestamp": "2020-02-22 17:05:54",
                            "type": "file",
                            "size": 7719
                        }
                    ]
                },
                {
                    "name": "file003",
                    "timestamp": "2020-02-22 16:06:17",
                    "type": "file",
                    "size": 19795
                },
                {
                    "name": "dir001",
                    "timestamp": "2020-02-22 16:17:45",
                    "type": "dir",
                    "files": [
                        {
                            "name": "file000",
                            "timestamp": "2020-02-22 16:18:51",
                            "type": "file",
                            "size": 3086
                        },
                        {
                            "name": "file001",
                            "timestamp": "2020-02-22 16:23:38",
                            "type": "file",
                            "size": 8133
                        },
                        {
                            "name": "file002",
                            "timestamp": "2020-02-22 16:35:25",
                            "type": "file",
                            "size": 6916
                        },
                        {
                            "name": "file003",
                            "timestamp": "2020-02-22 16:36:05",
                            "type": "file",
                            "size": 17667
                        },
                        {
                            "name": "file004",
                            "timestamp": "2020-02-22 16:51:42",
                            "type": "file",
                            "size": 13581
                        },
                        {
                            "name": "file005",
                            "timestamp": "2020-02-22 16:59:55",
                            "type": "file",
                            "size": 9410
                        },
                        {
                            "name": "file006",
                            "timestamp": "2020-02-22 17:03:47",
                            "type": "file",
                            "size": 9857
                        }
                    ]
                },
                {
                    "name": "file004",
                    "timestamp": "2020-02-22 16:27:45",
                    "type": "file",
                    "size": 7698
                },
                {
                    "name": "file005",
                    "timestamp": "2020-02-22 16:29:31",
                    "type": "file",
                    "size": 17094
                },
                {
                    "name": "file006",
                    "timestamp": "2020-02-22 16:32:13",
                    "type": "file",
                    "size": 15849
                },
                {
                    "name": "file007",
                    "timestamp": "2020-02-22 16:45:19",
                    "type": "file",
                    "size": 9405
                }
            ]
        },
        {
            "name": "file003",
            "timestamp": "2020-02-22 15:29:17",
            "type": "file",
            "size": 16557
        },
        {
            "name": "file004",
            "timestamp": "2020-02-22 15:32:07",
            "type": "file",
            "size": 281
        },
        {
            "name": "dir002",
            "timestamp": "2020-02-22 15:37:07",
            "type": "dir",
            "files": [
                {
                    "name": "file000",
                    "timestamp": "2020-02-22 15:38:54",
                    "type": "file",
                    "size": 13709
                },
                {
                    "name": "file001",
                    "timestamp": "2020-02-22 15:52:25",
                    "type": "file",
                    "size": 2105
                },
                {
                    "name": "file002",
                    "timestamp": "2020-02-22 15:55:48",
                    "type": "file",
                    "size": 5371
                },
                {
                    "name": "file003",
                    "timestamp": "2020-02-22 16:04:48",
                    "type": "file",
                    "size": 11686
                },
                {
                    "name": "file004",
                    "timestamp": "2020-02-22 16:16:39",
                    "type": "file",
                    "size": 4903
                },
                {
                    "name": "file005",
                    "timestamp": "2020-02-22 16:30:20",
                    "type": "file",
                    "size": 3169
                },
                {
                    "name": "file006",
                    "timestamp": "2020-02-22 16:46:31",
                    "type": "file",
                    "size": 14022
                }
            ]
        }
    ]
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 13:43:06 | 显示全部楼层
from sys import stdout

def _Printer(dict,indent,file):
    if dict['type']=='file':
        file.write('\t'*indent+f"{dict['name']}\t{dict['timestamp']}\t{dict['size']}\n")
    else:
        file.write('\t'*indent+f"{dict['name']}\t{dict['timestamp']}\n")
        for i in dict['files']:
            _Printer(i,indent+1,file)

def dict_printer(dict,file=stdout):
    _Printer(dict,0,file)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 14:04:48 | 显示全部楼层    本楼为最佳答案   
MYSR 发表于 2020-3-31 13:30
{
    "name": "dir000",
    "timestamp": "2020-02-22 14:25:44",
from sys import stdout

def _Printer(dict,indent,file):
    if dict['type']=='file':
        file.write('\t'*indent+f"{dict['name']}\t{dict['timestamp']}\t{dict['size']}\n")
    else:
        file.write('\t'*indent+f"{dict['name']}\t{dict['timestamp']}\n")
        for i in dict['files']:
            _Printer(i,indent+1,file)

def dict_printer(dict,file=stdout):
    _Printer(dict,0,file)
用dict_printer()打印即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 14:07:54 | 显示全部楼层
谢谢! 但是如果只能有两个参数的话该怎么写?
def print_folder(folder, indent=""):
    print(f"{indent}{folder['name']:<12} {folder['timestamp']}")
这上面两行是已知的 需要用到递归和循环 folder是我的那个字典

在我想要知道怎么写的function 前面还有一个function是专门调整我想要的indent的
def print_file_listing(file_listing, indent=""):
    print(f"{indent}{file_listing['name']:<12} "\
          f"{file_listing['timestamp']} "\
          f"{file_listing['size']:>8}")

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 14:11:58 | 显示全部楼层

我那个程序里 还有一些自带的代码 我发着了 不好意思 我一开始也没讲清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 14:17:36 | 显示全部楼层
MYSR 发表于 2020-3-31 14:07
谢谢! 但是如果只能有两个参数的话该怎么写?
def print_folder(folder, indent=""):
    print(f"{inde ...

什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 14:54:54 | 显示全部楼层

好像有点难以表达....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 15:15:11 | 显示全部楼层
MYSR 发表于 2020-3-31 14:54
好像有点难以表达....

……你这让我很难办啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 15:45:48 | 显示全部楼层

你知道这个地方怎么上传图片吗? 有图片就会好很多。。。 我看它这里只能给图片的网址 我不知道咋上传
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 16:00:15 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-31 13:18
你这个字典的可读性有点糟糕

我想不只是这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 16:00:56 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-31 13:18
你这个字典的可读性有点糟糕

这玩意真的好乱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 16:11:37 | 显示全部楼层
MYSR 发表于 2020-3-31 15:45
你知道这个地方怎么上传图片吗? 有图片就会好很多。。。 我看它这里只能给图片的网址 我不知道咋上传

用图床
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 18:02:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 18:03:05 | 显示全部楼层
_2_ 发表于 2020-3-31 16:00
这玩意真的好乱

因为我不会传图片... r然后我有点表达不清楚..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 18:03:10 | 显示全部楼层
imgchr.com
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 18:51:43 | 显示全部楼层

https://imgchr.com/i/GQtY7t
https://imgchr.com/i/GQtJ0I

一个是我想要的print出来的结果

还有一个是需要加代码的code

麻烦你了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表