我有一个f看起来像这样的文件:
#labelA
there
is
something
here
#label_Bbb
here
aswell
...
Run Code Online (Sandbox Code Playgroud)
它可以在一行上有许多标签和任意数量的元素(仅限str),每行标签可以有多行.我想将这些数据存储在如下字典中:
d = {'labelA': 'thereissomethinghere', 'label_Bbb': 'hereaswell', ...}
Run Code Online (Sandbox Code Playgroud)
我有一些子问题:
首先,mydict包含以#开头的键,值为列表(列表可以按行的顺序保留行),我们将行添加到此列表中,直到找到以#开头的下一行.然后我们只需要将行列表转换为一个单独的字符串.
我使用python3,如果使用python2替换mydict.items()用mydict.iteritems()的迭代键-值对
mydict = dict()
with open("sample.csv") as inputs:
for line in inputs:
if line.startswith("#"):
key = line.strip()[1:]
mydict.setdefault(key,list())
else:
mydict[key].append(line.strip())
result = dict()
for key, vlist in mydict.items():
result[key] = "".join(vlist)
print(result)
Run Code Online (Sandbox Code Playgroud)
输出:
{'labelA': 'thereissomethinghere', 'label_Bbb': 'hereaswell'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |