[PYTHON] 파일의 탭을 기준으로 문자열 분할
PYTHON파일의 탭을 기준으로 문자열 분할
탭 ( "\ t")으로 구분 된 값을 포함하는 파일이 있습니다. 목록을 만들고 목록에있는 모든 파일 값을 저장하려고합니다. 하지만 문제가 생겼어. 여기 내 코드가있다.
line = "abc def ghi"
values = line.split("\t")
각 값 사이에 탭이 하나만 있으면 제대로 작동합니다. 그러나 하나 이상의 탭이 있으면 테이블에 값을 복사합니다. 제 경우에는 대부분 추가 탭이 파일의 마지막 값 뒤에옵니다. 아무도 저를 도울 수 있습니까.
해결법
-
==============================
1.당신은 여기에 정규식을 사용할 수 있습니다 :
당신은 여기에 정규식을 사용할 수 있습니다 :
>>> import re >>> strs = "foo\tbar\t\tspam" >>> re.split(r'\t+', strs) ['foo', 'bar', 'spam']
최신 정보:
str.rstrip을 사용하여 '\ t'를 제거한 다음 regex를 적용 할 수 있습니다.
>>> yas = "yas\t\tbs\tcda\t\t" >>> re.split(r'\t+', yas.rstrip('\t')) ['yas', 'bs', 'cda']
-
==============================
2.regexp를 사용하면 다음과 같이 할 수 있습니다.
regexp를 사용하면 다음과 같이 할 수 있습니다.
import re patt = re.compile("[^\t]+") s = "a\t\tbcde\t\tef" patt.findall(s) ['a', 'bcde', 'ef']
-
==============================
3.탭에서 나누기를 선택하고 빈 칸을 모두 제거하십시오.
탭에서 나누기를 선택하고 빈 칸을 모두 제거하십시오.
text = "hi\tthere\t\t\tmy main man" print [splits for splits in text.split("\t") if splits is not ""]
출력 :
['hi', 'there', 'my main man']
-
==============================
4.다른 정규식 기반 솔루션 :
다른 정규식 기반 솔루션 :
>>> strs = "foo\tbar\t\tspam" >>> r = re.compile(r'([^\t]*)\t*') >>> r.findall(strs)[:-1] ['foo', 'bar', 'spam']
-
==============================
5.파이썬은 시조가 된 csv 모듈에서 CSV 파일을 지원합니다. 비교적 쉼표로 분리 된 값을 훨씬 더 많이 지원하므로 상대적으로 잘못 명명됩니다.
파이썬은 시조가 된 csv 모듈에서 CSV 파일을 지원합니다. 비교적 쉼표로 분리 된 값을 훨씬 더 많이 지원하므로 상대적으로 잘못 명명됩니다.
기본적인 단어 분리를 넘어서는 경우 좀 봐야합니다. 예를 들어 인용 된 값을 처리해야하기 때문에 ...
from https://stackoverflow.com/questions/17038426/splitting-a-string-based-on-tab-in-the-file by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 초를시, 분, 초로 변환하는 방법은 무엇입니까? (0) | 2018.10.30 |
---|---|
[PYTHON] 파이썬에서 "a is b"와 "id (a) == id (b)"의 차이점은 무엇입니까? (0) | 2018.10.30 |
[PYTHON] python : NameError : 전역 이름 '...'이 정의되지 않았습니다 [중복] (0) | 2018.10.30 |
[PYTHON] Python subprocess.check_output ()에서 예외 출력을 잡는 방법? (0) | 2018.10.30 |
[PYTHON] 내 간단한 파이썬 프로그램이 오류가 계속 : "TypeError : 'float'개체를 정수로 해석 할 수 없습니다" (0) | 2018.10.30 |