2017-11-27 7 views
1

ここで間違っているのはわかりませんか?特殊文字として\を扱う必要がありますか?シーケンス\ r \ nは文字通り私が使用しているtxtファイルの文字列に現れます。私は必要なもの/r/n部分文字列を検索することで、文字列データをリストのリストに分割します

def split_into_rows(weather_data): 
    list_of_rows = [] 

    while not (weather_data.find("\r\n") == -1): 
     firstreturnchar = weather_data.find("\r\n") 
     row = weather_data[ :firstreturnchar] 
     list_of_rows = list_of_rows.append(row) 

    return list_of_rows 

は、部分文字列\ rをする\の例が残っていながら、あるnは文字列の左、サブ「\ rを\ n」は最初のインスタンスを見つけ、その前に、すべてをチョップして置くためにそれを変数の行に追加し、次に行をlist_of_rowsに追加します。

+1

'list_of_rows = list_of_rows.append(行)':これは割り当てを必要としない、リストは、あなたがweather_data.splitlines '経由でちょうどそれを行うことができます – Mangohero1

+2

注変更可能です() ' – GPhilo

+0

バックスラッシュからエスケープする必要があります(前に別のバックスラッシュを入力してください)。 '\ r'と' \ n'は両方とも特殊文字です。 [この類似の質問を参照](https://stackoverflow.com/questions/11331778/find-backslash-in-a-string-python) – colopop

答えて

1

あなたはsplit()を使用することができます。

def split_into_rows(weather_data): 

    return weather_data.split('\\r\\n') 
+1

それは動作します!私はまだdef split_into_rows(weather_data)で特殊な文字をエスケープする必要があります。 return weather_data.split( '\\ r \\ n') – Davtho1983

+1

私はそれを受け入れることができる前に私は持っている! – Davtho1983

関連する問題