2012-03-09 8 views

答えて

5

あなたは既にre.split()を使用することをお勧めされています。しかし、strの定期split()方法は、同様に十分なはず:この宿題は

with open('new_file', 'w') as f_out, open('my_file') as f_in: 
    for line in f_in: 
     new_str = ','.join(line.split(',')[1:]) 
     f_out.write(new_str) 
+1

2番目のパラメータとして最大出現回数を指定できるので、通常の 'split'はここに表示されているものよりも優れています:' new_str = line.split( '、'、1)[1] ' –

+0

@JohnY - コンマがないと失敗するため、バージョンは良くありません。 – keithhackbarth

2

Regular Expressions何をしたいとも呼ばれます。具体的には、splitがうまくいくはずです。また

ヴァルス= re.split( ''、文字列、1)

+0

毛を分割しないようにする(意図的にはpun)が、splitを呼び出すことは正規表現を使うことと同じではありません。つまり、与えられた文字入力で文字列を分割することによって定義される言語は普通ですが、正規表現は正規言語を表現する特定の手段です。 「あなたが望むものはDFAと呼ばれています」と簡単に言えますが、あなたはちょうど右半分になるでしょう。 –

1

line = 'hello,my name is' 
line[line.find(',')+1 : ]  #find position of first ',' and slice from there 
>>> 'my name is' 
1

使用partition

>>> foo = 'hello, my name is' 
>>> foo.partition(',')[2] 
' my name is' 
>>> foo = 'john, john, mary' 
>>> foo.partition(',')[2] 
' john, mary' 
>>> foo = 'test,' 
>>> foo.partition(',')[2] 
'' 
>>> foo = 'bar' 
>>> foo.partition(',')[2] 
'' 
+1

''、''が存在しない場合は、これは面倒です! – vikki

+0

@vikki:OPの意味は「カンマを含むすべての文字を削除する」ことです。これは、カンマなしの行にすべての文字を削除する必要があることを意味すると解釈することができます(この答えはこれです)。しかし、それは実世界でしばしば私たちに噛み付いているので、私たちが辺の事例について考えるべきであると指摘したことは良いことです。 –

関連する問題