programing

python에서 문자열을 구분 기호로 분할합니다.

sourcejob 2022. 9. 27. 23:51
반응형

python에서 문자열을 구분 기호로 분할합니다.

이 문자열을 분할하는 방법__딜리미터입니다.

MATCHES__STRING

출력을 얻으려면['MATCHES', 'STRING']?

다음 방법을 사용할 수 있습니다.string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

콤마 구분 파일용으로 설계되었지만 커스텀 딜리미터를 사용하도록 쉽게 수정할 수 있는 이 모듈에 관심이 있을 수 있습니다.

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

for row in csv.reader( lines ):
    ...

문자열에 2개 이상의 요소가 있는 경우(아래 예에서는 3개), 콤마를 사용하여 이러한 항목을 구분할 수 있습니다.

date, time, event_name = ev.get_text(separator='@').split("@")

이 코드 줄 뒤에 세 변수가 변수의 세 부분으로부터 값을 갖게 됩니다.ev.

그래서 만약 변수가ev이 문자열을 포함하며 구분 기호를 적용합니다.@:

Sa., 23. März@19:00@Klavier + Orchester: SPEZIAL

그리고 나서split변수를 조작하다

  • date가치가 있다Sa., 23. März
  • time가치가 있다19:00
  • event_name가치가 있다Klavier + Orchester: SPEZIAL

Python 3.8의 경우, 실제로 필요한 것은 없습니다.get_textmethod로 하면 됩니다.ev.split("@")실제로,get_textmethod는 att를 던지는 것입니다.오류입니다. 예를 들어 문자열 변수가 있는 경우:

filename = 'file/foo/bar/fox'

위의 코멘트에 제시된 바와 같이 혼수상태로 다른 변수로 분할할 수 있지만 수정이 필요합니다.

W, X, Y, Z = filename.split('_') 
W = 'file' 
X = 'foo'
Y = 'bar'
Z = 'fox'

게다가.split그리고.rsplit,있어partition/rpartition 번 스트링을 분리하지만 질문한 방식도 해당될 수 있습니다.

예:

>>> "MATCHES__STRING".partition("__")
('MATCHES', '__', 'STRING')

>>> "MATCHES__STRING".partition("__")[::2]
('MATCHES', 'STRING')

그리고 조금 더 빨리split("_",1):

$ python -m timeit "'validate_field_name'.split('_', 1)[-1]"
2000000 loops, best of 5: 136 nsec per loop

$ python -m timeit "'validate_field_name'.partition('_')[-1]"
2000000 loops, best of 5: 108 nsec per loop

타임릿 라인은 이 답변을 기반으로 합니다.

언급URL : https://stackoverflow.com/questions/3475251/split-a-string-by-a-delimiter-in-python

반응형