2011-07-14 11 views
1

タブ間に文字列を分割したい。のは、私はだから私は左側から冗長性を削除し、そのまま右サイドを維持したいfile.txtなどでいくつかのテキストPythonで文字列を分割

Kern_County_Museum 1,000,000+ 
Fairplex_railway_exhibit Depot and rolling stock 

を持っているとしましょう。

import re 
import string 
import urllib 

for line in open('file.txt', 'r').readlines(): 
left, right = string.split(line, maxsplit=1) 
relation = string.split(line, maxsplit=1) 

le = relation[0] 
ri = relation[1] 

le = urllib.unquote(relation[0]) 
le = le.replace('_', ' ') 


print le, '\t', ri 
+2

をあなたがのstring.Splitを使用しないでください()。各文字列オブジェクトはsplit()メソッド*を直接提供します。 –

答えて

2

スプリットを抑制します。

left, right = line.split(None, 1) 
+2

これは 'left、right = string.split(line、maxsplit = 1) 'にする必要があります。 –

+0

@Ignacio Vazquez-Abrams:ありがとうございました! –

+0

@Guanidene:これはあなたのソリューションで動作します。多く。 –

1

デフォルトでは、splitメソッドは文字列を任意の空白で分割します。タブで文字列を分割するには、このメソッドに追加のパラメータを渡す:

left, right = line.split('\t', 1) 
+0

私はそれらが空白で分割されていると思っていました。 " – samb8s

+0

@Roman Bodnarchuk:ありがとう! –

+0

@ samb8sはい、すべての空白で区切ります。 –

0

使用str.partition

left, delim, right = line.partition('\t') 
+0

エラー - 'strオブジェクトに属性パーティションがありません ' –

+1

@Blue Ice、2.5より古いPythonを使用している場合、質問/タグで言及することをお勧めします –