首页 > 解决方案 > 如何将由空格分隔的单词读取为单个值

问题描述

我正在尝试在 python 中读取 .txt 文件并将结果存储在列表中。我的 txt 文件看起来像这样:

Roll no         12
Name            Abc
Date of birth   11/11/90

列表中的预期输出:

['Roll no','12','Name','Abc','Date of birth','11/11/90']

使用 readLines() 后得到的输出:

['Roll','no','12','Name','Abc','Date','of','birth','11/11/90']

标签: python

解决方案


如果没有看到实际代码,很难确切地知道这里出了什么问题。

readlines将在换行符分隔符上拆分文件。为了实现完全的跨平台兼容性,请以“通用”兼容模式 (PEP-278 https://www.python.org/dev/peps/pep-0278/ ) 打开文件,这样可以避免有关您的行是否以 ' 结尾的问题\n'、'\r\n' 或其他一些变体(取决于您使用的是 DOS 还是类 Unix 系统):

with open('input.txt', 'rU') as t:
    lines = t.readlines()

然后,您可以获取这组行,并假设您的输入使用制表符分隔符,将每行拆分为一个键/值对:

results = list()
for line in lines:
    key,value = line.strip().split('\t')
    results.append(key)
    results.append(value)

有多种方法可以将其分解为列表理解,但上面是一个非常明确的示例,说明了如何实现您想要的结果。


推荐阅读