2016-10-25 13 views
0

私は、次のようなリストを持つ大きなCSVファイルを持っています:Pythonを使用してファイル内の文字列内の余分なスペースを削除する

data1;データ2;データ3; DATA4

DATA4にコンテンツがそうのようになります。これらの余分なスペースを削除するためにDATA4内のすべての行を反復処理するための最良の方法は何Correct String

Bad String

DATA4の内容は次のようになりますか?私は何とかdata4の位置にアクセスしなければならないことを知っています。それは[3]でしょうが、余分なスペース除去を実装しながら、すべての行に対してどのように行うのか分かりません。

ありがとうございます!

答えて

0

正規表現を試しましたか?

import re 

bad_string = "This is  a bad string" 
good_string = re.sub('\s+', ' ', bad_string) # replace multiple spaces with single 

それとも外部のライブラリを使用したくない場合は、空白で分割し、str.join()

bad_string = "This is  a bad string" 
good_string = " ".join(bad_string.split()) 
+0

はあなたの応答を@paultありがとうございました。私は両方の方法を試したが、何も変更を加えなかった。私はファイルにコードを実装している可能性がありますか? good_string = re.sub( '\ s +'、 ''、output_file_location)ここで、 "output_file_location"は次のようになります: "2; PP; 16th and Congress; -97.97 30.27、-97.73 30.27、...、97.73 30.27 " –

+0

@ MichaelMcKeever-ファイルにコードを実装することが何を意味するのかよく分かりません。私が提供したコードは、任意の数のスペースで文字列を取り、複数のスペースを1つのスペースに置き換えます。最初の方法は検索パターン '\ s +'(sは空白を意味し、+は空白のシーケンスを単一オカレンスとして扱う)を単一のスペースで置き換える 're.sub()'を使います。 2番目の方法は、文字列を空白に分割し、結果のリストを1つのスペースをセパレータとして使用する文字列として結合します。 – pault

+0

私はそれがうまく実行されました!ご協力ありがとうございました!問題は私のforループの構文にありました。 –

0

を使用することができます私はあなたがコンマののいくつかを以下の余分なタブがあることを意味しているとします

str1 = "; -77.1565506 38.8912708,\t -77.1552148 38.8913919,\t -77.1549278 38.8921727, -77.1557808 38.8916717, -77.1565506 38.8912708" 
print(str1) 

タブの、str.replace(old, new[, max])を使用取り除くために:

をあなただけの余分なスペース、タブ、改行削除するには、以下を使用することができ
0

original_string = 'This \t\n contains \n \t extra spaces.' 
clean_string = ' '.join(original_string.split()) 
print(clean_string) 

# Output: 'This contains extra spaces.' 
関連する問題