2016-05-18 6 views
1

Pythonで不要な文字を取り除く際にいくつか問題があります。 ファイルから\ rn \ n [] '文字は含まれていませんが、下のコードがファイルからフェッチされています。ファイルに書き込むときに不要な文字を取り除く

私は上記の不要な文字を取り除き、数字とテキストを入力し、これらを別のファイルに書き込みます。私はline.stripのような多くの方法を試しましたが、どれも働いていませんでした。

ここで私はファイルにどのように書き込んでいますか。

product = str(product) 
f.write(product) 

そして、ここで結果

['34512340', 'Plain Brackets', '0.5\r\n'] 

いる誰もが、私は不要な文字を削除するには、このに追加する必要があるものを簡単な言葉で説明できる場合、私は非常に感謝されます。おかげ

答えて

0
#list of lines 
lines = ['34512340', '0.5\r\n', 'Plain Brackets']; 

#looping through the whole list 
for i in range(len(lines)): 

    #stripping unwanted characters \n and \r from each line 
    lines[i] = lines[i].rstrip('\n').rstrip('\r') 

    #printing the line without the unwanted characters 
    print lines[i] 

出力:

34512340 
0.5 
Plain Brackets 
0

ここでは一例です:

elements = ['34512340', '0.5\r\n', 'Plain Brackets']; 

number_of_elements = len(elements); 

for i in xrange(0, number_of_elements): 
    elements[i] = elements[i].rstrip('\r\n'); # instead of specific symbols, you can also create a list to filter here 
    print elements[i]; 
+2

';'ここには目的を持っていないし、ひどく非Python的です。 –

+0

申し訳ありませんが、私はこれを理解していません。 @UrsaMajorこれを行う簡単な方法はありますか? –

+0

私の答えはDot_Py'sとほぼ同じです。 –

0

ただ、いくつかのバリエーションのために:

list(map(lambda x:str(x).rstrip('\r\n'),['34512340', 'Plain Brackets', '0.5\r\n'])) 

私は実際にリスト内のすべての項目にロジックを適用するときに関数マップに組み込まれて使用するように。ループを繰り返すのではなく、1本のラインを作るだけです。パフォーマンスの賢明さはわかりませんどのようにスタックするか私は決して1つのライナーを好むので、

Map function documentation

地図は、第二のparamとして1つの、パラメータリストまたはiteratableタイプとしての機能を取り、リスト内のすべての項目に関数を適用します。もっと簡潔にするためにラムダ関数宣言を渡しました。

関連する問題