2016-04-16 18 views
0

ちょっとこのコードをPythonで書いて、選択したテキストファイルを繰り返して読み込みます。私の目的は、ファイルを読み込んだ後、ファイルを新しいファイルに書き込んで、 "winter"という単語を何も置き換えないことです。第2の改訂ファイルから単語を削除することができる。私はodetoseasonsとodetoseasons_censoredという2つのtxtファイルを持っています。これらの2つのファイルの内容は、プログラムが開始する前と同じです。これPython I/Oは、行内の単語を置き換えます

I love winter 
I love spring 
Summer, Fall and winter again. 

ある/これは、私はそれがodetoseasonsで内容を保持するプログラムを実行するとreadwrite.pyという名前のpythonファイルがあるが、何とかわからないodetoseasons_censored.txtの内容を削除する理由/

# readwrite.py 
# Demonstrates reading from a text file and writing to the other 

filename = input("Enter file name (without extension): ") 
fil1 = filename+".txt" 
fil2 = filename+"_censored.txt" 
bad_word = ['winter'] 

print("\nLooping through the file, line by line.") 
in_text_file = open(fil1, "r") 
out_text_file = open(fil2,"w") 
for line in in_text_file: 
    print(line) 
    out_text_file.write(line) 
in_text_file.close() 
out_text_file.close() 

out_text_file = open(fil2,"w") 
for line in fil2 : 
    if "winter" in line: 
     out_text_file.write(line) 
     line.replace("winter", "") 

答えて

0

実際にはコードに2つのエラーがあります。まず、関数a.replace()は、置換された単語を持つオブジェクトを返し、元のオブジェクトを変更しません。次に、 'w'モードで開いたファイルを読み込もうとしていますが、これは不可能です。読み書きの両方が必要な場合は、「r +」モードを使用する必要があります。ここで

は、あなたが使用できることを正しいコード(およびよりコンパクトなもの)である: -

filename = input("Enter file name (without extension): ") 
fil1 = filename+".txt" 
fil2 = filename+"_censored.txt" 
bad_word = ['winter'] 

print("\nLooping through the file, line by line.") 
in_text_file = open(fil1, "r") 
out_text_file = open(fil2,"w") 
for line in in_text_file: 
    print(line) 
    line_censored = line.replace("winter","") 
    print(line_censored) 
    out_text_file.write(line_censored) 
in_text_file.close() 
out_text_file.close() 
関連する問題