想阅读文件夹内容并将其转换为字典。我的基本方法如下。
代码片段:
import os
b_path = "/home/work/assignments/chapters"
output = {}
for path, subdirs, files in os.walk(b_path):
for name in subdirs:
tmp = os.path.join(path, name)
tmp_arr = [i for i in os.listdir(tmp)]
for i, v in enemurate(tmp_arr):
output[name] = [os.path.join(tmp, v)]
output[name].append(os.path.join(tmp, <not sure how to achieve this> ))]
print(output)
subdirs
打印文件夹名称 -countries, social, algebra, functions
等等。
subdir
(文件夹)下包含 2 个文件,1. yaml 文件,2. zip 或 tar.gz 文件。
tmp_arr's
输出
['func.yaml', 'sensor.zip']
['packets.tar.gz', 'check.yaml']
['mt101.tar.gz', 'provider.yaml']
and so on.
我希望我的字典看起来像:
{
"countries": [
"/home/work/assignments/chapters/countries/func.yaml",
"/home/work/assignments/chapters/countries/sensor.zip"
],
"social": [
"/home/work/assignments/chapters/social/check.yaml",
"/home/work/assignments/chapters/social/packets.tar.gz"
],
and so on
}
我有一个这样的文件夹结构:
Sample
│
└───folderA
│ │ A1.txt
│ │ A2.txt
│
└───folderB
│ B1.txt
│ B2.txt
代码
import os
b_path = "Sample"
output = {}
for path, subdirs, files in os.walk(b_path):
for name in files:
folder = os.path.basename(path)
if output.get(folder) is None:
output[folder] = [name]
else:
output[folder].append(name)
print(output)
输出
{'folderA': ['A1.txt', 'A2.txt'], 'folderB': ['B1.txt', 'B2.txt']}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句