2017-08-01 3 views
0

私はPythonでファイルにいくつかの変更を加えるコードを持っています。私は、そのアクションをフォルダの複数のファイルに対して実行したいと考えています。私はそれを行うには、次のコードを書いた: FP =オープン(ファイル、 'R':ファイル内のファイルの 輸入OS ファイル= os.listdir( "/ホーム/ intucell/tarファイル") 再linuxとpythonの高度なファイル処理

インポートライン用) FPに: プリント(line.replace( '4.0.0'、 '5.0.0')) f.close()

私はコードと呼ばれるフォルダ内の複数のファイルに対して実行しますtarfiles。これらのファイルの名前は、そのフォルダのリストから読み取られなければなりません。しかし、Linuxではスペースを含むファイル名は読み込まれません。彼らの名前にスペースを含む約100のファイルがあります。それについてどうすればいいですか?

+2

に忘れてはいけませんファイル名のパラメータを取る。 2.この関数を呼び出すと、ファイル名のリストを繰り返し処理します。 –

答えて

0

forループを使用できます。

import os 
item_list = next(os.walk(your_directory_path))[1] 
for i in item_list: 
    fp = open (str(i), 'r') 
    for line in fp: print(line.replace (' 4.0.0 ', ' 5.0.0 ')) 
     print(re.sub(r'\b4.0.0[^.]', '5.0.0 ', line)) 

例えば

私はそれはあなたが変更したい複数のファイルを仮定し、os.listdir使用することができます

0

あなたはあなたが仕事をしたいファイルfilelistのリストを持っていると仮定すると、あなたは簡単に使用することができます。

import re 
for filename in filelist: 
    fp = open (filename, 'r') 
    for line in fp: print(line.replace (' 4.0.0 ', ' 5.0.0 ')) 
     print(re.sub(r'\b4.0.0[^.]', '5.0.0 ', line))` 

それとも、フォルダ内のファイルを検索する必要がありますか?

0

役立つことを願って、その後、パス変数に格納されたフォルダにあります。

files = os.listdir(path) 
for _file in files: 
    fp = open (_file, 'r') 
    for line in fp: 
     print(line.replace (' 4.0.0 ', ' 5.0.0 ')) 
     print(re.sub(r'\b4.0.0[^.]', '5.0.0 ', line)) 

EDIT: 1.機能股関節にあなたのコードを入れてください: もあなたは2つのステップにこれを打破になっているはずですimport os

関連する問題