2016-07-12 4 views
0

パス内のすべてのversion.phpファイルを検索する関数を作成しました。私はその関数の出力を取って、そのファイルから行を見つけようとしています。ファイルを検出機能は次のとおりです。ファイルを見つけて、それらのファイル内の文字列を見つけよう

def find_file(): 
    for root, folders, files in os.walk(acctPath): 
    for file in files: 
     if file == 'version.php': 
     print os.path.join(root,file) 
find_file() 

あり、パス内のいくつかのversion.phpのファイルがあると私はそれらの各ファイルから文字列を返すようにしたいと思います。

編集: 私の必要性に合わないコードの提案がありがとうございました。私はリストを作成し、各項目を2番目の部分に渡すことでそれを理解することができました。これは最善の方法ではないかもしれませんが、私は数日間Pythonをやっています。

def cmsoutput(): 
    fileList = [] 
    for root, folders, files in os.walk(acctPath): 
    for file in files: 
     if file == 'version.php': 
     fileList.append(os.path.join(root,file)) 

    for path in fileList: 
    with open(path) as f: 
     for line in f: 
     if line.startswith("$wp_version ="): 
      version_number = line[15:20] 
      inst_path = re.sub('wp-includes/version.php', '', path) 
      version_number = re.sub('\';', '', version_number) 
      print inst_path + " = " + version_number 

cmsoutput() 
+0

戻したい文字列はどれですか?どの基準に基づいていますか? –

+0

私が探している文字列は "$ wp_version ="です。その存在以外の追加基準はありません。 – cthulhuplus

答えて

0

機能の出力を使用したいので、return何かが必要です。それを印刷してもそれはカットされません。すべてが、それは次のように少し修正しなければならない働くと仮定:

import os 


def find_file(): 
    for root, folders, files in os.walk(acctPath): 
     for file in files: 
      if file == 'version.php': 
       return os.path.join(root,file) 

foundfile = find_file() 

今変数foundfileは、私たちが見てみたいファイルのパスが含まれています。ファイル内の文字列を探しては、そのようにのように行うことができます。

with open(foundfile, 'r') as f: 
    content = f.readlines() 
    for lines in content: 
     if '$wp_version =' in lines: 
      print(lines) 

または機能バージョンで:

def find_in_file(string_to_find, file_to_search): 
    with open(file_to_search, 'r') as f: 
     content = f.readlines() 
     for lines in content: 
      if string_to_find in lines: 
       return lines 

# which you can call it like this: 
find_in_file("$wp_version =", find_file()) 

それがものを見つけると、コードの機能バージョンは、上記のようにすぐに終了します。なおあなたが探している文字列のインスタンス。それらをすべて手に入れたい場合は、変更する必要があります。

関連する問題