如何从 .txt 文件在 python 中创建一个带有空格的字典

亚历山大·威尔斯

这是我必须使用的 .txt 文件。我无论如何都无法更改文件。

Avignon 48
Bordeaux -6
Brest -45
Caen -4
Calais 18

Dijon 51
Grenoble 57
Limoges 12
Lyon 48
Marseille 53

Montpellier 36
Nantes -16
Nancy 62
Nice 73
Paris 23

Rennes -17
Strasbourg 77
Toulouse 14

我在将此文件转换为字典时遇到问题。这是我目前尝试使用的方法。

d = {}
when open("dict.txt") as f:
    for line in f:
        if line.endswith('\n'):
            (key, val) = line.split()
            d[key] = int(val)

        elif line.endswith('\n\n'):
            (key, val) = line.split()
            d[key] = int(val)
    print(d)

问题是当 .txt 文件中的文本集之间有额外的空间时。当没有多余的空格时,我可以毫无问题地创建字典。

Traceback (most recent call last):
  File "C:\Users\alexa\PycharmProjects\pythonProject4\Data.py", line 73, in 
  <module>
    (key, val) = line.split()
ValueError: not enough values to unpack (expected 2, got 0)

这是我得到的错误。我该如何解决这个问题?

星辰

这里的问题是空行将是 '\n',因此您无法区分空行与其他行,因为所有行都以 '\n' 结尾。这是我使用列表理解和 for 循环的建议。可能可以在单个字典理解中做到这一点。

# Read in file
lines = []                                                                                                                         
with open('file.txt', 'r') as f: 
    lines = f.readlines()

# Split out and drop empty rows
strip_list = [line.replace('\n','').split(' ') for line in lines if line != '\n']

d = dict()
for strip in strip_list: 
    d[strip[0]] = int(strip[1]) 

输出:

{'Avignon': 48,
 'Bordeaux': -6,
 'Brest': -45,
 'Caen': -4,
 'Calais': 18,
 'Dijon': 51,
 'Grenoble': 57,
 'Limoges': 12,
 'Lyon': 48,
 'Marseille': 53,
 'Montpellier': 36,
 'Nantes': -16,
 'Nancy': 62,
 'Nice': 73,
 'Paris': 23,
 'Rennes': -17,
 'Strasbourg': 77,
 'Toulouse': 14}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python文件中导入名称中带有空格的文件?

如何在python文件中导入名称中带有空格的文件?

如何通过读取.txt文件为每个键创建具有多个“列表”的Python字典?

如何将行名称中带有空格的数据文件读入python?

Python编写一个.txt文件

如何在Python中写入.txt文件?

如何将带有txt和id的.txt文件内容解析为python中的字典?

如何在python中的特定行将txt文件插入/插入另一个txt文件

我如何从python中的txt文件制作字典

python tkinter界面如何创建一个新的以显示txt文件

如何从.txt文件制作Python字典?

从txt文件python创建字典

如何在python中创建新的.txt文件

如何从带有“ x”个字符后的列分隔符的txt文件中创建一个csv文件

从txt文件在python中创建字典

如何制作一个与另一个txt文件同名的文件,而不覆盖该文件,而是在python中为现有的txt文件添加一个数字?

如何使用python读取多个(超过2个).txt文件

如何在Python中比较2个txt文件

如何在Python中创建.txt文件?(Pycharm)

我如何制作一个脚本,该文件会带有空格的awk .txt文件读取.csv?

如何从文件中读取一个带有空格的字符串的不同变量

我如何将数据保存到 .txt 文件而不是创建一个新文件(Python)

如何导入一个变量中带有单引号的txt文件,另一个变量中带有另一个

如何使用 Python 读取文件夹中的所有 .txt 文件并将其内容附加到一个 .txt 文件中?

如何从python中的txt文件加载代理?

如何从python中的不同txt文件创建数据框?

如何读取txt文件中的列(Tab)并创建列表?Python

如何在python中制作2个字典,在.txt文件中用空格分隔

如何枚举两个键中的字典值并使用 Python 输出 txt 文件中的值?