[PYTHON] 큰 텍스트 파일에서 두 개의 고유 한 단어 사이에서 정보를 추출하는 방법
PYTHON큰 텍스트 파일에서 두 개의 고유 한 단어 사이에서 정보를 추출하는 방법
문자 정보로 가득 찬 약 150 개의 텍스트 파일이 있습니다. 각 파일에는 두 개의 고유 한 단어 ()와 bravo가 포함되어 있으며이 고유 한 단어 사이에서 텍스트를 추출하여 다른 파일에 쓰려고합니다.
수동으로 두 단어에 대해 Ctrl + F를 누르고 텍스트를 복사 할 수 있습니다. 많은 파일에 대해 프로그램 (선호하는 Python)을 사용하여이 작업을 수행하는 방법을 알고 싶습니다.
해결법
-
==============================
1.정규 표현식을 사용할 수 있습니다.
정규 표현식을 사용할 수 있습니다.
>>> st = "alpha here is my text bravo" >>> import re >>> re.findall(r'alpha(.*?)bravo',st) [' here is my text ']
내 test.txt 파일
alpha here is my line yipee bravo
이제 open을 사용하여 파일을 읽거나 정규식을 적용합니다.
>>> f = open('test.txt','r') >>> data = f.read() >>> x = re.findall(r'alpha(.*?)bravo',data,re.DOTALL) >>> x [' here is my line\nyipee\n'] >>> "".join(x).replace('\n',' ') ' here is my line yipee ' >>>
-
==============================
2.
a = 'alpha' b = 'bravo' text = 'from alpha all the way to bravo and beyond.' text.split(a)[-1].split(b)[0] # ' all the way to '
-
==============================
3.str.find와 형제 인 rfind에는 시작과 끝 arg가 있습니다.
str.find와 형제 인 rfind에는 시작과 끝 arg가 있습니다.
alpha = 'qawsed' bravo = 'azsxdc' startpos = text.find(alpha) + len(alpha) endpos = text.find(bravo, startpos) do_something_with(text[startpos:endpos]
포함 된 텍스트가 짧고 앞쪽에있는 경우 가장 빠른 방법입니다.
포함 된 텍스트가 비교적 큰 경우 다음을 사용하십시오.
startpos = text.find(alpha) + len(alpha) endpos = text.rfind(bravo)
포함 된 텍스트가 짧고 끝에 가까울 경우 다음을 사용하십시오.
endpos = text.rfind(bravo) startpos = text.rfind(alpha, 0, endpos - len(alpha)) + len(alpha)
첫 번째 방법은 텍스트 시작 부분에서 두 번째 검색을 시작하는 순진한 방법보다 나은 경우가 있습니다. 포함 된 텍스트에 지배적 인 패턴이없는 경우 사용하십시오.
-
==============================
4.정규 표현식을 사용하는 대신 Python string.find 메소드를 사용하십시오.
정규 표현식을 사용하는 대신 Python string.find 메소드를 사용하십시오.
>>>> unique_word_a = 'alpha' >>>> unique_word_b = 'bravo' >>>> s = 'blah blah alpha i am a good boy bravo blah blah' >>>> your_string = s[s.find(unique_word_a)+len(unique_word_a):s.find(unique_word_b)].strip() i am a good boy
from https://stackoverflow.com/questions/9222106/how-to-extract-information-between-two-unique-words-in-a-large-text-file by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 : dir의 모든 모듈에서 가져 오는 방법은 무엇입니까? (0) | 2018.11.24 |
---|---|
[PYTHON] AttributeError : 'str'객체에 'append'속성이 없습니다. (0) | 2018.11.24 |
[PYTHON] 어떻게 장고에서 파이썬을 사용하여 응용 프로그램 이름을 얻는 지 (0) | 2018.11.24 |
[PYTHON] 모든 문자열이나 정규 표현식이 파일에 존재하는지 확인 (0) | 2018.11.24 |
[PYTHON] h5py로 점진적으로 hdf5에 씁니다. (0) | 2018.11.24 |