텍스트 파일에서 필요한 문자열을 찾은 뒤 그 개수 알아보고 비교하기
조회수 2796회
txt 파일에서 필요한 문자열을 찾은 뒤 그것들을 뽑아내서 총 개수가 몇 개 인지 알아보고, 비교해보고 싶습니다.
현재 만들어 본 코드를 대강 생략해서 보여드리겠습니다 !
f = open
file = f.read()
file_s = file.split()
a = [필요한 문자열들 1]
b = [필요한 문자열들 2]
p_a = 0
p_b = 0
for c in file_s: # (또는 변수 c가 필요가 없는 것 같아서 while file_s != 0 을 사용하려 생각 중 입니다.)
if ???.count()???>= 1 :
p_a += 1
elif ???.count()???>= 1:
p_b += 1
if p_a > p_b:
print("a")
break
elif p_a == p_b:
print ("=")
break
else:
print("b")
break
여기서 문제가 되는 부분은 for문 바로 아래 물음표로 해놓은 if와 elif 입니다.. (물론 다른 부분도 문제가 있겠지만 현재 아무것도 모르는 제가 보기에 ㅜㅜ)
count 함수를 써야하는 건 알겠는데 어떤 식으로 써야할지 짐작이 안 갑니다..
txt 내에 제가 필요로 하는 문자열들 중. 만약 a 리스트 안에 있는 문자열이 있다면 p_a에 1을 더하고 싶고, b 리스트 안에 있는 문자열이 있다면 p_b에 1을 더하고 싶습니다.
그런데 필요로 하는 문자열이 여러 개이기 때문에 문자열을 구하지 않고, 문자열의 개수를 알고싶고, 문자열의 개수를 비교해서 개수가 큰 값이 출력되게 하고싶다. 이런 얘기인데 제가 잘 설명한건지도 모르겠네요...
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
문서의 모든 단어의 카운트를 미리 저장해놓고 개별적으로 찾고자 하는 단어를 모든 단어에서 찾아 카운트를 더하면 되겠죠.
from collections import Counter a = ('dhclient', '5828', 'bioset') b = ('vmstat', 'bioset', '0:00.00') f = open('...') wordcount = Counter(f.read().split()) # 파일에서 단어 카운트. 크기순 내림차순 정렬되어 있음 p_a = sum(wordcount[word] for word in a) # a에 존재하는 단어 카운트 더함 p_b = sum(wordcount[word] for word in b) # b에 존재하는 단어 카운트 더함 print(p_a, p_b)
댓글 입력