2017-02-08 4 views
1

私はを作成しようとしていますは、ファイル内に何らかのテキストが見つかると行を書きます。 :.txtファイルで "hello"が見つかるので、 "こんにちは!"と書いてください。次の行にあります。 他にも何かがあります、私はそれを書いてほしい "こんにちは! 初めてではありません "hello" ですが、第2のが見つかりました。 これは私が試みてきたことですが、そのアイデアが正しいかどうかはわかりません。どんな助け?コードのブロックが持っているとき、私は、この場合には、Pythonでコンテキストマネージャなので、それが意味することをwith文を使用していますキーワードを見つけるときにファイルに行を書く

def line_replace(namefilein): 

    new_content = '' 
    first_time = False 
    with open(namefilein, 'r') as f: 
     for line in f: 
      new_content += line 
      if 'hello' in line: 
       if first_time: 
        new_content += 'Hi!' + '\n' 
       else: 
        first_time = True 


    with open(namefilein, 'w') as f: 
     f.write(new_content) 

見て:あなたはこのコードを使用することができます

def line_replace(namefilein): 
    print namefilein 
    filein=open(namefilein, "rw") 
    tag="intro" 
    filein.read() 
    for line in filein: 
     if tag=="second" or tag=="coord": 
      try: 
       filein.write("\n\n %s" %(text-to-be-added)) 
       print line 
      except: 
       if tag=="coord":  
        tag="end" 
       else: 
        tag="coord" 

     if "   text-to-find" in line: 
      if tag=="intro": 
       tag="first" 
      elif tag=="first": 
       tag="second" 
    filein.close() 
+0

入力と出力に同じファイルを使用する必要がありますか? – lmiguelvargasf

+0

あなたは最初の時間が無視され、何度も「こんにちは」が見つかるとどういう意味ですか? – lmiguelvargasf

+0

はい、出力ファイルは、関数によって行が追加された入力ファイルです。 – santimirandarp

答えて

0

実行されると、ファイルは自動的に閉じられます。

hello 
friend 
this 
is 
hello 

とのあなたのファイルがあなたのコードを持つPythonのファイルと同じディレクトリにあるとしましょう、そう呼び出す:

line_replace('my_file.txt') 

ましょうはずあなたはある内容ファイルmy_file.txtを持っています

は次の出力を生成します:

+0

素晴らしい、私はそれを試してみる – santimirandarp

関連する問題