python - 解析文本文件而不拆分多单词名称

标签 python regex parsing text python-3.x

我正在尝试使用文本文件从 xml 获取数字输出,并将其转换为名称,然后将其写入单独的文本文件。我的问题是该名称有时包含空格,我不知道如何处理这个问题。

该程序在线访问多个 txt 和 xml 文件,其中的项目通过引用号进行引用。它将这些文件中的信息与我设置的标准进行比较,然后将引用号添加到列表中。我想做的是将这个引用号转换为关联的名称。我有一个包含引用编号和名称的文本文件,想要使用 index() 函数查找引用编号,然后将关联的名称写入文本文件。我无法解析它以便进行转换。我的问题是列表是这样写的:

number    name\n
14        apple\n
27        anjou pear\n
36        asian pear\n
7645      langsat\n

所以如果我只使用 .split() 我最终会得到一些名称被分割。我尝试用“\n”替换数字和名称之间的空格,然后将其拆分,但这也不起作用。如果我用 ' , ' 替换空格并拆分,我最终会得到包括下一行号 ['apple\n15'] 的名称,该行号将文本写入两行,并给我留下了无法拆分的相同问题它在空白处...

有什么建议吗???

我现在已经按照下面的建议实现了 Dict() 函数,该函数可以工作接受我在名称末尾仍然有\n...

ttn = dict()
f=open('typeid2.txt', 'r')
    for line in f:
    number, name = line.split(None,1)
    ttn[number] = name

如果我调用ttn['14'],我会得到'apple\n'

最佳答案

正则表达式非常强大和有用,但需要花很多时间才能习惯以一定的权限使用它们。我建议您坚持使用 split,这里是 split 的帮助信息,描述了如何使用 maxsplit 值来限制拆分数量。

Help on built-in function split:

split(...)
S.split([sep [,maxsplit]]) -> list of strings

Return a list of the words in the string S, using sep as the
delimiter string.  If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are removed
from the result.

对于您的代码,假设您有一些行需要拆分

mytest = dict()
for each_line in data:
    number, name = line.split(None,1)
    mytest[number] = name

会返回类似这样的内容

mytest {'27': 'anjou pear', '7645': 'langsat', 'number': 'name', '36': 'asian pear', '14': 'apple'} to access the help suppose you have some string mystring then just type

help(mystring.split)

我的第一次尝试和这一次之间的差异是由于下面的评论。在我的第一次尝试中,保留了名称值上的前导空格,但是,通过使用 None,在第一次拆分时删除了所有空白字符,因此这更具体地满足您要查找的内容。

关于python - 解析文本文件而不拆分多单词名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22384099/

相关文章:

python - 多个 Django 存储后端系统

python - 如何使用 matplotlib set_yscale

javascript - 正则表达式匹配扩展名但排除特定文件

java - ReplaceAll 正则表达式匹配所有模式,无需特定字符串

python从onenote响应字符串解析文本

java - 解析字符串时如何获得 Double 而不是 double?

Python字符串列表2D

python - 将 pandas 多重索引转换为日期时间格式

c# - 匹配所有数字但拆分为单个字符

parsing - 在解析器组合器中组合词法分析器和解析器