1

例 1 を例 2 に変換する関数を作成する必要があります。例 1 の関数は既に作成しています。例 2 の関数を作成するにはどうすればよいですか?

例 1。

{
       'delo' : {
          'navodila.docx' : 83273,
          'poročilo.pdf' : 37653347,
        },
       'igre' : {},
       'seznam.txt' : 7632,
       'razno' : {
          'slika.jpg' : 4275,
          'prijatelji' : {
             'janez.jpg' : 8734765,
   }

例 2。

delo 
   navodila.docx (83273)
   poročilo.pdf (37653347)
   artikli.dat (253)
igre
seznam.txt (7632)
razno
   slika.jpg (4275)
   prijatelji
      janez.jpg (8734765)

改行がない場合を除いて、最初の例で既に作成した関数:

import os

def f(folder):
    dict={}
    list = os.listdir(folder)
    for ts in list:
        fullName = folder + '\\' + ts

        if os.path.isfile(fullName):
            size=os.path.getsize(fullname)
            dict[ts]=size
        else:
            dict[ts]=f(fullName)
        return (dict)
4

3 に答える 3

2
def dump(d, level=0, indent=4):
    for name in d:
        if isinstance(d[name], dict):
            print('{0}{1}'.format(' ' * level, name))
            dump(d[name], level+indent)
        else:
            print('{0}{1} ({2})'.format(' ' * level, name, d[name]))
于 2013-06-11T16:07:33.730 に答える
0

これは私が本当に欲しかったもので、補充するだけの簡単な方法です

def f(map,n=0): 
        dictionary=beforeF(map) #function before i made
        for key in dictionary.keys():
            fullName = map + '\\' + key
            if path.isdir(fullName): 
                print(n*'\t'+key+':')

                f(fullName, n+1)
            else:
                print(n*'\t'+key + ' (' + str(dictionary[key])+ ')')
于 2013-06-11T20:35:22.377 に答える