从文本文件中取一行并将它们放入python中的字典中

时间:2017-04-03 02:46:14

标签: python parsing

我有以下格式的一行:

Liam "!#123121" 32 "University of Southern California" "1312azasdas"

我想在python中拆分这一行,这样对于文件中的每一行,都有一个nameageuniversity。在上面的例子中,'32'是年龄,'Liam'是名称,'University ...'是大学名称。什么是最好的方法呢?

2 个答案:

答案 0 :(得分:1)

使用csv.reader,将空格设置为分隔符,并为引号字符输入"。这很简单,只需要进行实验和测试。

答案 1 :(得分:0)

Regular Expressions!他们开始时有点困惑,但他们很棒。这里有太多要完整解释,但有关您具体示例的简短演示:

import re

t = 'Liam "!#123121" 32 "University of Southern California" "1312azasdas"'

nau = re.match('([A-Za-z]+) ".*" ([0-9]+) "([A-Za-z ]+)" .*', t)
nau.groups()

>> ('Liam', '32', 'University of Southern California')

正则表达式的非常简短的细分:

  1. 圆括号内的任何内容都是“组” - 即您感兴趣的位。
  2. 方括号中的任何内容表示字符集 - 表示“匹配任何这些字符”,A-Z中的连字符表示“A和Z之间的任何大写字母”。
  3. 方括号后的'+'表示它正在查找集合中的一个或多个字符,并且仅在集合中找到字符而不是时停止。
  4. '。*'表示匹配任何,但你会注意到我所使用的。*都不在群组中 - 它们只是用来跳过不相关的东西< em>在组之间。
  5. 霍普有帮助!