2017-04-03 55 views
-2

我有以下格式的行:从文本文件以一条线,将它们放入辞典蟒蛇

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

我想分割在python这一行,从而为文件中的每一行有name,ageuniversity。在上面的例子中,'32'是年龄,'Liam'是名字,'University ...'是大学的名字。什么可能是最好的方法来做到这一点?

回答

0

​​!他们有点困惑,让你的头脑开始,但他们真棒。过多的全面这里要说明一下,但你的具体例子简要演示:

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. 方括号中的任何内容表示一个字符集 - 表示“匹配任何这些字符”,AZ中的连字符表示“A和Z之间的任何大写字母”。
  3. 方括号后面的'+'表示它正在查找集合中的一个或多个字符,并且只有在该集合中发现字符而不是时才会停止。 “*”
  4. 意味着比赛什么,但你会发现,没有任何的*的我用在了组 - 他们只是用来跳过组之间不相干的东西

Hoppe帮助!

1

使用csv.reader,将空白区域设置为分隔符,并将其放入"以供引用字符使用。这很简单,只是实验和测试一下。