Python 如何按空格分割行[.split()],但保留特定的空格

Python 如何按空格分割行[.split()],但保留特定的空格,python,Python,我有一个需要拆分的文本文件。通常,我可以使用line.split()以空格分隔行的各个部分。但是,在本例中,我需要的字符串部分包含一个空格,在拆分时需要忽略该空格 文本文件如下所示: 1卡塔尔98900美元 2 95 000美元 3卢森堡80600美元 4百慕大69 900美元 5新加坡59700美元 6泽西岛57000美元 7福克兰群岛(马尔维纳斯群岛)$55400 我需要每个国家都被视为一个“部分”。当然,当我使用line.split()分隔符时,python希望在每个空格处拆分 我如何将多

我有一个需要拆分的文本文件。通常,我可以使用line.split()以空格分隔行的各个部分。但是,在本例中,我需要的字符串部分包含一个空格,在拆分时需要忽略该空格

文本文件如下所示:

1卡塔尔98900美元

2 95 000美元

3卢森堡80600美元

4百慕大69 900美元

5新加坡59700美元

6泽西岛57000美元

7福克兰群岛(马尔维纳斯群岛)$55400

我需要每个国家都被视为一个“部分”。当然,当我使用line.split()分隔符时,python希望在每个空格处拆分

我如何将多个单词的国家名称(如“美国”和“福克兰群岛(马尔维纳斯群岛)”作为一个部分保存在一起

我尝试了简单的line.split()方法。我还想办法去掉行首的数字(使用.lstrip或其他符号),然后用“$”符号分割行(我还需要收集美元值作为另一部分),但在这方面运气不好

for line in file:
    part = line.split()
我们希望能够使用“part”变量收集国家名称及其对应的“part[1]”和“part[3]”值,并将它们作为对应的键值对输入到字典中。因此,最终输出如下所示:

dict={'卡塔尔':'98900','美国':'95000',…'福克兰群岛(马尔维纳斯群岛)''55400'}

$ dict((line.split(" ", 1)[1].split(" $ "),))
{'United States': '95,000'}
或者将其添加到现有词典
mydict

mydict.update(dict((line.split(" ", 1)[1].split(" $ "),)))

您可以将“United States”视为一个专有名词,并在拆分字符串之前将每个专有名词转换为一个整体:

>>convert={'United States':'UnitedStates'}
>>>text=‘1美元95000’
>>>text=text.replace('United States',convert['United States'])
>>>正文
“1美元95000”
在拆分完成后恢复它们:

>recover={v:k表示k,v表示convert.items()}
>>>parts=[recover.get(i,i)for i in text.split()]
>>>零件
['1'、'美国'、'美元'、'95000']

如果文本文件中的行始终由四项组成:索引、国家、货币符号和金额,则可以执行以下操作:

for line in file:
    left, curr, value = line.rsplit(' ', 2)
    country = left.split(' ', 1)[1]

    # print(country, ': ', value)
# United States :  95000

你的文本总是像这样吗?索引、名称、货币、数量?考虑ReGEX或你会有困难的时间!有没有更多的空间的值?在美元符号之前的一切都是关键,所有的事情之后,价值1是正确的吗?第一个空间用线分裂。“(1))2.通过子字符串“$”拆分生成的第二部分。这应返回['United','95000',],可将其转换为dictionary