2017-04-03 69 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,將空白區域設置爲分隔符,並將其放入"以供引用字符使用。這很簡單,只是實驗和測試一下。