2017-04-17 15 views
0

でテキストファイル内のすべてのスペースを削除するだから私は、私のクローラと、それによって作られたこのクレイジーな長いテキストファイルが何らかの理由でリンクわたってるしきいくつかのスペースを追加している。このように:のPython 3.xの

https://example.com/asdf.html        (note the spaces) 
https://example.com/johndoe.php        (again) 

私が欲しいですそれを取り除いて新しい行を残してください。テキストファイルの長さは4.000以上であることに注意してください。私は自分でやろうとしましたが、ファイル内の新しい行をどのようにループするかわかりません。

+1

ループあなたがどこまで行くことができるか(実際の問​​題を解決する)。 – mshsayem

答えて

1

あなたが直接私の提案であるので、ここでは、Pythonのファイルを編集することはできませんように思える: `ラインのための(「file.txtを」)オープンで::`これを試してみて、参照ラインを介して

# first get all lines from file 
with open('file.txt', 'r') as f: 
    lines = f.readlines() 

# remove spaces 
lines = [line.replace(' ', '') for line in lines] 

# finally, write lines in the file 
with open('file.txt', 'w') as f: 
    f.writelines(lines) 
+0

行3、データ= f.readlines()ファイル "C:\ Python34 \ lib \ encodings \ cp1250.py"、行23、デコード時 return codecs.charmap_decode(input、self.errors、decoding_table)[0 ] UnicodeDecodeError: 'charmap'コーデックは1357のバイト0x81をデコードできません:文字はにマップされます。 "位置"は文字ファイル内の文字の位置または行を意味しますか? – Kappa

+0

ファイルにUnicode文字がある場合は、これを 'open( 'file.txt'、 'r'、encoding =" utf8 ")で実行します。 –

+0

私のために働いた、ありがとう。 – Kappa

1

あなたは、ファイルを開き、行を読ん線で、ホワイトスペースを削除することができます -

のPython 3.xの:

with open('filename') as f: 
    for line in f: 
     print(line.strip()) 

のPython 2.xの:

with open('filename') as f: 
    for line in f: 
     print line.strip() 

各行のスペースを取り除き、印刷します。

希望すると助かります!

+0

何らかの理由で、これは私のPythonバージョンでは動作しないようです。 – Kappa

+0

@カッパ、私はあなたがpython2.xを使っていると思います。 'print(line.strip())'を 'print line.strip()'に変更してください。それが動作します。 –

+0

@OmPrakash実際には、括弧は2.xでは違いがなく、OPは明示的に3.xを質問に入れています。 – jonrsharpe