我已将一些数据导出到文本文件中,以包含两列数据,如下所示:
a b
c d
e f
g h
不幸的是,列间距不均匀。 a和b可以用2个空格分隔,而c和d可以用5个空格分隔,而e和f可以用3个空格分隔等。
如何获取这些列并创建一个简单的字典,如{a:b,c:d,e:f,g:h}?
答案 0 :(得分:4)
你可以试试这个:
f = [i.strip('\n').split() for i in open('filename.txt')]
final_dict = {i[0]:i[1] for i in f}
默认情况下,无论长度如何,split函数都会自动在空格实例处划分行。
答案 1 :(得分:2)
您可以在pandas.read_table
函数中将自定义delim_whitespace
参数设置为True
:
import pandas as pd
df = pd.read_table('data.txt', delim_whitespace=True)
d = {a: b for a, b in df.values}
答案 2 :(得分:2)
这样的简单解决方案怎么样?
d = {}
for line in open('file.txt'):
[key, value] = line.split() # split() without arguments splits by whitespace
d[key] = value
print(d)