2016-07-15 3 views
-7

ディレクトリに.txtファイルのリストがあります。各ファイルには複数の行があります。そのディレクトリに含まれるすべてのファイルからすべての改行を取り除くPythonスクリプトは何でしょうか?結果のファイルには、すべてのテキストを含む1行だけが必要です。ディレクトリに含まれる.txtファイルから新しい行を取り除くためのPythonスクリプト

import os 
os.chdir("/home/Pavyel/Desktop/Python Programs") 

for i in os.listdir(os.getcwd()): 
    if i.endswith(".txt") : 
    f = open(i) 
    contents = f.read() 
    new_contents = contents.replace('\n', '') 
    print i 
    continue 
else: 
    continue 
+4

多くのスクリプトが存在する可能性があります。まだ書き込もうとしていますか? – mhawke

+0

輸入OS os.chdir( "/ホーム/ iitp /デスクトップ/ Pythonのプログラム")os.listdirで私のため (os.getcwd()): 場合i.endswith( "TXT。"): F =オープン(I) 内容= f.read() new_contents = contents.replace( '\ nの'、 '') プリント私は他の を続ける :プリント(line.replace(: はこのラインで – Pavyel

答えて

-1
import os 
import sys 
import fileinput 

dir = "." #Directory to scan for files 

file_list = os.listdir(dir) 

for file in file_list: 
    if file.endswith(".txt"): 
     with fileinput.FileInput(file, inplace=True, backup=".bak") as f: 
      for line in f: 
       sys.stdout.write(line.replace("\n", "")) 

これも念のため、それが編集したすべてのファイルのバックアップを作成します。
バックアップをしたくない場合は、, backup=".bak"を7日から削除してください。

+0

問題を継続"\ n"、 "")、end = "") – Pavyel

+0

@Pavyel **あなたはPythonの互換性のないバージョンを実行しています。おそらくPython 2は新しい印刷機能をサポートしていないためです。スクリプトは私のコンピュータ上で正常に動作します。とにかく私はコードを変更して、より多くのPythonバージョンで動作するようにしました。 – Janekmuric

0

glob.glob()を使用して、対象ファイル、つまり.txtで終わるファイルを探します。​​3210は、一致するファイル名のリストを返すだけでなく、パスをそのまま残すため、ディレクトリを変更する必要はありません。

プロセスfileinput.input()のある場所にあるファイルは:あなたは、Python 2を使用している場合はPython 3のデフォルトであるとして

import fileinput 
from glob import glob 

pattern = '/home/Pavyel/Desktop/Python Programs/*.txt' 
files = glob(pattern) 
if files: 
    with fileinput.input(files, inplace=True) as f: 
     for line in f: 
      print(line.rstrip('\n'), end='') 

それは、普遍的な改行処理が有効になっていることを確認するためにfileinput.input()mode='U'を渡す価値があるかもしれません。これを有効にすると、コードが実行されているプラ​​ットフォームに関係なく、\nが改行に一致することを確認できます。

関連する問題