[파이썬(Python)] 파일내용 찾기

매일매일 개발하는 소스코드를 올리고 있습니다. 원래는 프로젝트가 끝나고 올리려고 했으나, 그러다 보니 까먹는 경우가 있어서 이렇게 매일매일 올리는 소스코드 입니다. 제가 쓴 소스코드의 문제 혹은 개선점이 있으면 언제든지 댓글 달아 주세요 

특정 폴더 안에 있는 텍스트 파일을 읽어서 해당 내용을 검색하면 보여주는 파이썬 소스입니다. 기본적으로 스크립트처럼 대화형으로 만들었구요. !start 명령을 치시면 지정한 폴더내 파일을 읽어와서 검색을 시작할 수 있습니다. 소스는 간단하니까 보시면 금방 이해될것 같네요.^^ 추가적으로 폴더 지정을 한다던가 하는 부분을 추가하는 등의 확장에 대한 여지는 남아 있으니, 잘 활용하면 좋을것 같습니다.
 

ps) 참고로 한글에 대한 부분은 검색을 지원하지 않습니다. 

# -*- coding:utf-8 -*-
     
import os;
import os.path; 
import sys;

content_list = []
is_start = False

def ReadFile(file_path):
    
    fp = open(file_path, 'r', encoding='utf8')
    read_data = fp.read()
     
 
    return read_data
    
 

def GetFileList(folder_path):
    filelist = os.listdir(folder_path)
    return filelist; 
        
def start():
    print("Searching Service Start..")
    folder_path = "C:\\ContentType_log\\";
    file_list = GetFileList(folder_path)
    
    for file_path in file_list:
        content = ReadFile(folder_path + file_path)
       
        content_dic = dict()
        content_dic["content"] = content
        content_dic["filename"] =file_path 
        
        content_list.append(content_dic)
    
    is_start = True; 
 

def stop():
    print("Searching Service Stop..")
    is_start = False; 
    sys.exit()
    
        
def clear():
    content_list = []
    print(str(len(content_list)))
    
    
def search(search_word):
    result_list = []
    
    index = 0; 
    for content_dic in content_list:
        
        content =content_dic["content"]
        filename =content_dic["content"]
 
        result = content.rfind(search_word)
       
        if(result >0):
            result_list.append(index);
          
        index = index+1
        
    result_len = len(result_list)
    if(result_len==0):
        print("Do no find")
    else:
        print("Find : "+str(result_len))
        for idx in result_list:
            print(content_list[result_list[idx]])
        
        
    
            
        
    

def Conversation(text):
    
    if(text == "!start"):
        start()
    elif(text == "!stop"):
        stop()
     
    elif(text == "!clear"):
        clear()
    else: 
        search(text)
        
    
    
if __name__ == '__main__':
    
    
    while True:
        text = input(">>")
        Conversation(text)
        
 
  
     
저작자 표시 비영리 변경 금지
Technique/Python 2011/12/20 09:18
Trackback 0 : 댓글을 오로지 페이스북으로만.

◀ 이전 : [1] : ... [4] : [5] : [6] : [7] : [8] : [9] : [10] : [11] : [12] : ... [407] : 다음 ▶