如何在python中用空格分隔的值逐行读取文件

如何在python中用空格分隔的值逐行读取文件,python,Python,我有一些不同的文件格式,在一个txt文件中包含数百万行。我的文件格式如下所示: 12122.AA.K IRIR-93I3KD-OEPE-IE,6373,893939,09/12/2093,,N,EC,3838-38939-393 12123.AA.K KKKS-93I3KD-OEPE-IE,9393,039033,09/12/2093,,N,EC,3838-38939-393 12122.AA.K PEOEP-93I3KD-OEPE-IE,9033,930392,09/12/2093,,N,EC

我有一些不同的文件格式,在一个txt文件中包含数百万行。我的文件格式如下所示:

12122.AA.K IRIR-93I3KD-OEPE-IE,6373,893939,09/12/2093,,N,EC,3838-38939-393
12123.AA.K KKKS-93I3KD-OEPE-IE,9393,039033,09/12/2093,,N,EC,3838-38939-393
12122.AA.K PEOEP-93I3KD-OEPE-IE,9033,930392,09/12/2093,,N,EC,3838-38939-393
12124.AA.K MDJDK-93I3KD-OEPE-IE,3930,272882,09/12/2093,,N,EC,3838-38939-393
12125.AA.K EOEPE-93I3KD-OEPE-IE,8393,039393,09/12/2093,,N,EC,3838-38939-393
Key: 12122.AA.K
Value: IRIR-93I3KD-OEPE-IE,3833,343343,09/12/2093,,N,EC,3838-38939-393
在Python中,我希望将其拆分为每行的键和值,如下所示:

12122.AA.K IRIR-93I3KD-OEPE-IE,6373,893939,09/12/2093,,N,EC,3838-38939-393
12123.AA.K KKKS-93I3KD-OEPE-IE,9393,039033,09/12/2093,,N,EC,3838-38939-393
12122.AA.K PEOEP-93I3KD-OEPE-IE,9033,930392,09/12/2093,,N,EC,3838-38939-393
12124.AA.K MDJDK-93I3KD-OEPE-IE,3930,272882,09/12/2093,,N,EC,3838-38939-393
12125.AA.K EOEPE-93I3KD-OEPE-IE,8393,039393,09/12/2093,,N,EC,3838-38939-393
Key: 12122.AA.K
Value: IRIR-93I3KD-OEPE-IE,3833,343343,09/12/2093,,N,EC,3838-38939-393
若看到键和值为,则仅用一个空格区分

使用python的有效方法是什么

提前感谢你的帮助

with open('file.txt','r') as file:
   thedict={e.split(' ')[0]:e.split(' ')[1] for e in file}

你可以试试这个字典理解法

到目前为止你都试了些什么,为什么不起作用?试试这个方法。默认情况下,它在whitespaceAFAICT上拆分字符串,在输入的每一行上都有相同的键值对。你打算如何处理重复的钥匙?@ShadowRanger-它没有重复-我已经更新了我的密码post@ShadowRanger我猜这只是作品中的懒惰。@schwobaseggl有更好的方法吗?我只是被有数百万条物品的赤裸裸的记录逗乐了。最初的阅读和拆分并不理想,现在我更喜欢它。仍然给split打两次电话感觉没有必要。请参阅另一个避免这种情况的答案。注意:如果任何一行缺少空格字符,这将出错。如果要通过将键(行的内容)与空字符串配对来处理这些行,可以执行:
dict(对于f中的行,line.partition(“”)[::2])
partition
总是精确地返回三个值,因此即使索引值为偶数,也会得到两个值(如果找到,中间的值就是分区字符,您在这里并不关心)。
with open(filename) as f:
    mapping = dict(line.split(' ', 1) for line in f)