pythonファイルの検索と内容のマッチング方法
需要:プログラム開発には多くのインターフェースがありますが、実際の使用の一部は使われていません。開発されたプログラムの中でこれらのインターフェース名にマッチしています。これらの未使用のインターフェース名を保存します。
コード構造:
構造解析:
1、find.pyはファイル検索とマッチングプログラムです。
2、input_files.txtはマッチングすべき内容です。
ファイル形式は以下の通りです。
3、result.txtは検索結果を保存するために使用されます。
同じフォーマット
4、text.txtテスト用のドキュメント(無視可能)
実際のコード:
find.py
コード構造:
構造解析:
1、find.pyはファイル検索とマッチングプログラムです。
2、input_files.txtはマッチングすべき内容です。
ファイル形式は以下の通りです。
3、result.txtは検索結果を保存するために使用されます。
同じフォーマット
4、text.txtテスト用のドキュメント(無視可能)
実際のコード:
find.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, re, datetime
class Find(object):
def __init__(self, root, input_file):
"""
--
"""
self.root = root #
self.input_files = [] #
self.files = [] #
self.current = 0 #
f = file(input_file, "r")
old_content = f.read()
f.close()
self.input_files = old_content.split('
') #
@staticmethod
def find_file(self):
"""
-- ,
:return:
"""
# python walk ,
for root, dirs, files in os.walk(self.root, topdown=True):
for name in files:
self.files.append(os.path.join(root, name))
# print(os.path.join(root, name))
# for name in dirs:
# print(os.path.join(root, name))
@staticmethod
def walk(self):
"""
-- , result.txt
:param self:
:return:
"""
for item1 in self.files:
Find.traverse_file(self, item1)
try:
result = ''
for item3 in self.input_files:
result += item3 + '
'
f = file("./result_files.txt", "w")
f.write(result)
f.close()
except IOError, msg:
print "Error:", msg
else:
print "OK"
@staticmethod
def traverse_file(self, file_path):
"""
-- ,
:return:
"""
f = file(file_path, "r")
file_content = f.read()
f.close()
input_files = []
for item2 in self.input_files:
if item2:
# ,
searchObj = re.search(r'(.*)' + item2 + '.*', file_content, re.M | re.I)
if searchObj:
continue
else:
input_files.append(item2)
self.input_files = input_files
if __name__ == "__main__":
print datetime.datetime.now()
findObj = Find('F:\\projects', "./input_files.txt")
findObj.find_file(findObj)
findObj.walk(findObj)
print datetime.datetime.now()
以上のpythonファイルの検索と内容のマッチング方法は、小編集が皆さんに提供したすべての内容です。参考にしていただければ幸いです。よろしくお願いします。