我正在嘗試從檔案路徑串列中獲取字典。我找到了其他方法,但他們沒有深入研究。我已經使用了代碼:
# fs is a list of files
directories = {'': set()}
for f in fs:
splitted = f.split("\\")
directories[''].add(splitted[0])
for i in range(len(splitted)):
if i == len(splitted)-1:
break
d = ''
for j in splitted[0:i 1]:
d = j os.path.sep
d = d[0:-1]
if not d in directories:
directories[d] = set()
directories[d].add(splitted[i 1])
fs 是:
['C:\\aydin-os\\filesystem\\', 'C:\\aydin-os\\filesystem\\apps', 'C:\\aydin-os\\filesystem\\apps\\aydin-browse', 'C:\\aydin-os\\filesystem\\apps\\aydin-browse\\main.app', 'C:\\aydin-os\\filesystem\\apps\\calculator', 'C:\\aydin-os\\filesystem\\apps\\calculator\\main.app', 'C:\\aydin-os\\filesystem\\system', 'C:\\aydin-os\\filesystem\\system\\apps', 'C:\\aydin-os\\filesystem\\system\\apps\\apps.stats',
'C:\\aydin-os\\filesystem\\system\\data', 'C:\\aydin-os\\filesystem\\system\\data\\data.stats', 'C:\\aydin-os\\filesystem\\users', 'C:\\aydin-os\\filesystem\\users\\aydin', 'C:\\aydin-os\\filesystem\\users\\aydin\\data', 'C:\\aydin-os\\filesystem\\users\\aydin\\data\\password.stats']
目錄是:
{'': {'C:'}, 'C:': {'aydin-os'}, 'C:\\aydin-os': {'filesystem'}, 'C:\\aydin-os\\filesystem': {'', 'apps', 'users', 'system'}, 'C:\\aydin-os\\filesystem\\apps': {'aydin-browse', 'calculator'}, 'C:\\aydin-os\\filesystem\\apps\\aydin-browse': {'main.app'}, 'C:\\aydin-os\\filesystem\\apps\\calculator': {'main.app'}, 'C:\\aydin-os\\filesystem\\system': {'data', 'apps'}, 'C:\\aydin-os\\filesystem\\system\\apps': {'apps.stats'}, 'C:\\aydin-os\\filesystem\\system\\data': {'data.stats'}, 'C:\\aydin-os\\filesystem\\users': {'aydin'}, 'C:\\aydin-os\\filesystem\\users\\aydin': {'data'}, 'C:\\aydin-os\\filesystem\\users\\aydin\\data': {'password.stats'}}
uj5u.com熱心網友回復:
我發現使用 defaultdict 我可以嵌套檔案路徑。任何感興趣的人的代碼:
# fs is the list of the files
for idx in range(len(fs)):
fs[idx] = fs[idx].replace('\\','/').replace('C:/aydin-os/','')
for f in fs:
f2 = f.split('/')
estring = 'files'
for f3 in f2:
if f3 == '':
continue
estring = '["' f3 '"]'
estring = ' = {}'
exec(estring)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/450059.html
標籤:Python 文件 字典 蟒蛇操作系统 python-3.10
上一篇:在檔案讀取中使用for回圈而不是while回圈有優勢嗎?
下一篇:如何為影像添加標簽?
