Python-如何将.txt文件(两列)转换为字典元素?

时间:2018-12-28 16:42:39

标签: python file dictionary text key

我想从.txt文件的两列中检查x和y的最小值和最大值,但是我不知道如何。

嗨,大家好:)我进行了频谱分析,得到了500多条频率线和相应的dB。我想在jupyter笔记本中创建一个字典,使我可以检查x和y的最大值和最小值以及很少的光谱分析变化。我使用了这段代码:

y = {} 

with open('wow.txt', "r") as infile: 
    for line in infile: 
        key, value = line.strip().split(':') 
        y[key] = (value) 
print(y) 

还有

d = {}
with open('wow.txt') as f:
    for line in f:
        key, value = line.strip().split(':')
        d[key] = int(value)

但是有一个

  

ValueError:没有足够的值可解包(预期2,得到1)。

我从程序中获得了此值,并且有两列,所以我做错了什么?

1 个答案:

答案 0 :(得分:3)

在文本文件中的某处没有':'字符,因此它不能分割行。也许某处空行?

此外,对于这种事情,我喜欢使用pandas,这是一个具有很多有趣功能的库。

import pandas as pd
df = pd.read_csv(file, delimiter=':', names=['freq', 'db'])
min = df.loc[df['db'].idxmin()]
max = df.loc[df['db'].idxmax()]
print('Minimum at {}Hz with a magnitude of {}dB'.format(min['freq'], min['db']))
print('Maximum at {}Hz with a magnitude of {}dB'.format(max['freq'], max['db']))