2016-06-13 7 views
0

正しくフォーマットされていないファイルがたくさんあります。ファイルから空白(新​​しい行ではない)と "/ n"を削除する方法

データは、私は、事前に "/ n" は

結果

select * from table1,table2 
select cnt(1) from table3 

おかげで不要な空白を削除し、どうすればよい。この

select *     from table1 \n , table2 
    select cnt(1) from       table3 

のようなものである

+0

「\ n」または「/ n」ですか? –

+0

それは\ nで、/ nではない – nnnnmmm

+5

可能な複製http://stackoverflow.com/questions/1546226/a-simple-way-to-remove-multiple-spaces-in-a-string-in-pythonとhttp: //stackoverflow.com/questions/8270092/python-remove-all-whitespace-in-a-string –

答えて

1

が、私はこれをテストしていませんが、私はアイデアがコンマの前だけでなく、任意の数のスペースのために働くだろうと思います以前の答えのように、もっとシンプルだったが実用的ではなかった。ファイル内のすべての行について、その行のすべての単語を調べますが、固定される行ごとに空のリストを作成します。行の中の単語が ""または "\ n"であれば、それを追加しません。 それから、新しいリストを調べて、コンマに等しくない場合はスペース+スペースを印刷します。

for line in file: 
     wordl = [] 
     strng = "" 
     for word in line: 
      if word != " " or word != "\n": 
       wordl.append(word) 
     for w in wordl: 
      if w != ",": 
       strng += w + " " 
      else: 
       strng += w 
    print strng 
0

最も簡単これを行う方法は次のとおりです。

s = 'select *     from table1 \n ,  table2' 
result = " ".join(s.split()).replace(' , ', ',') 
print result 

出力:は、select * TABLE1、table2のから

+0

OPの例のように文字列が 'select * from table1 \ n、table2'ならどうですか? – SilentMonk

+1

"、"を "、"で置き換えて修正しました。 –

関連する問題