본문 바로가기
놀기/Python

map function 안에서 문자열 strip 및 replace 하기

by Hi~ 2021. 7. 26.

file을 읽어 tuple 형식으로 만들려고 하는데 문자열에 따옴표(")도 있고 공란도 있고 개행 문자도 있고 할 때 한 번에 바꾸는 방법은???

 

Source Code

#!/usr/bin/env python2
# -*- coding: UTF-8 -*-
#kate: syntax Python ;

def main():
    with open('go.list') as f:
        mylist = [tuple(map(lambda str:str.replace('\"', '').strip(), i.split(','))) for i in f]
    print mylist

if __name__ == "__main__":
    main()

 

간략히 설명하면

1. 파일(go.list)을 읽고(f)

2. 한 행 씩 읽어(i)

3. 문자열(str)을 콤마(,)로 분리하는데

4. 이때, 문자열(str)의 따옴표(")를 공란('')으로 치환하고

5. 앞 뒤 공란, 개행 관련 문자('\r', '\n')을 제거를 전처리 후 진행

6. 처리 결과를 가지고 tuple을 생성

 

 

TEST

input

"a  ", "/home/busyman/1"
"b", "  /home/busyman/2"
"c", "/home/busyman/3"
"d", "/home/busyman/4  "
"e", "/home/busyman/5"

 

output

$ ./read_tuple.py 
[('a', '/home/busyman/1'), ('b', '/home/busyman/2'), ('c', '/home/busyman/3'), ('d', '/home/busyman/4'), ('e', '/home/busyman/5')]

 

댓글