-1

テキスト ファイルを読み込んで、スペースで区切られた 2 つの列を抽出し、それらを別のテキスト ファイルに書き込んでいます。一部の行に「-」文字があります。それらを削除して書きたいと思います。次のコードの何が問題になっていますか? line.replace() も使用しましたが、これは機能しませんでした。

fo = open('referrer.txt','rw')

try:
  for line in open('c1'):

      if line.startswith('#'):
          continue
      else:
          resource = line.split(' ')[5]
          fo.write(re.sub('-',' ',line.split(' ')[11]) +' '+resource + '\n')
except: 
  pass
fo.close()

more info : c1 には、スペースで区切られた各行に多くの情報があります。各行の5番目と11番目の文字列を抽出して読んでいます。次に、このreferrer.txt行には、「abssfdf-cfgd abc」のようなものが含まれています。referrer.txt に書き込む前に、各行の「-」文字を削除したいですか?

4

2 に答える 2

2

書き込むと、ファイルのポインタが前方に移動し、元の内容が上書きされます。次の読書は、あなたの執筆が終わったところから始まります。

新しいファイルに書き込んだ方がよいでしょう。

于 2013-06-14T13:27:37.767 に答える
-1

Linux を使用している場合は、Sed コマンドを使用してください。

import commands
commands.getstatusoutput('sed -i 's/\-/ /g' /youfile.txt')

「#」で始まる行を無視するには、 grep -v "#" file.txt > other_filer.txtを使用します。以前は OS コマンドを使用してファイルを処理していました。

于 2013-06-14T13:37:06.090 に答える