2016-03-23 9 views
0

このコードは、1つのテキストファイルのすべての行を結合し、別の新しいテキストファイルの1行にまとめます。たとえば : は、私はこれらの線パスからすべてのテキストファイルを検索し、そのテキストファイルのすべての行を1つのテキストファイルに結合する方法

大学

エスケープ

パワー

テキスト

のテキストファイルを持っていると私は

としてライン上にこれらの行を結合する必要があります

カレッジ・エスケープ・パワー・テキスト

これは問題なく機能しています。

コード:

import os 
current = None 
parts = [] 
with open('input.txt', 'rb') as f: 
    for line in f: 
     if line.startswith('--'): 
      current = [line.strip()] 
      parts.append(current) 

     elif current is not None: 
      current.append(line.strip()) 


with open('output.txt', 'w+b') as f1: 
for part in parts: 
    f1.write('\n'+' '.join(part+' ')) 

しかし、あなたは、このために私を導いてくださいfile.Can 1つのテキストにすべてのテキストファイルの行を結合する必要があります。

例:私は自分のパスにこれらのテキストファイルを持っています。

  1. INPUT.TXT .txtで(1)

  2. 入力

  3. 入力(3)

答えて

1

を.txtで.txtで(2)

  • 入力すべてのテキストファイルを次のように読むことができます:

    import os 
    
    file_contents = [] 
    for file in os.listdir("directory_to_search"): 
        if file.endswith(".txt"): 
         with open('input.txt', 'rb') as f: 
          file_contents.append(" ".join(line.strip() for line in f)) 
    

    これは、今あなたが出力ファイルにそれらすべてを書くことができ、各ファイルの内容をfile_contentsを移入します:

    with open('output.txt', 'w+b') as f1: 
        all_files_as_one_string = ' '.join(file_contents) 
        f1.write(all_files_as_one_string) 
    

    そのファイルのそれぞれに複数の単語があれば単一の大きな文字列を作成する前に、file_contentsリストをループしてすべての行を結合する必要があります。

  • +0

    実際に私の質問は、ディレクトリ内の複数のテキストファイルを読み取り、すべてのテキストファイルの行を1つのテキストファイルに結合することです – lotus

    +0

    ああ、私はあなたが最初のビットが働いていたと思った。私は答えを編集してディレクトリ内のすべてのtxtファイルを見つけ、それらを結合しました。 – srowland

    +0

    ありがとうございました。また、1つのテキストファイルのすべての行を1つの行に結合したいという疑問があります。どうすればいいですか? – lotus

    関連する問題