파이썬 join, split 공백 줄이기

조회수 954회

제가 cmd에서 Process 리스트를 txt로 다운받아 파이썬으로 공백을 줄이려고합니다. (tasklist | findstr > a.txt 라고 cmd에 치면 텍스트 파일이 생성됩니다.)

프로세스의 리스트가 아래와 같은 형식으로 저장됩니다.

smss.exe(공백)(공백)(공백)(공백)452 Services(공백)(공백)(공백)0(공백)(공백)(공백)1,064 K (\n) wininit.exe(공백)(공백)(공백)(공백)692 Services(공백)(공백)(공백)0(공백)(공백)(공백)5,672 K (\n)

이러한 리스트를 DB에 로드하기 위해서 구분자를 공백 한칸으로 변경하려고 합니다. (구분자는 열을 구분합니다.)

파이썬의 join 함수를 이용하여 ' '.join(processlist)를 할 시에

smss.exe(공백)452(공백)Services(공백)0(공백)1,064(공백)K(공백)wininit.exe(공백)692(공백)Services....

이러한 형식으로 \n까지 공백 한칸으로 대체하여 한줄로 나오게 됩니다.

제가 원하는 형식은

smss.exe(공백)452(공백)Services(공백)0(공백)1,064(공백)K (\n) wininit.exe(공백)692(공백)Services(공백)0(공백)5,672(공백)K

이렇게 출력되도록 원하는데 파이썬의 join, split 함수로 가능한가요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    #anwser.bat
    @echo off
    tasklist > tmp.txt
    for /F "tokens=1,2,3,4,5,6 skip=3" %%A in (tmp.txt) DO echo %%A %%B %%C %%D %%E %%F >> result.txt
    del tmp.txt
    

    위의 bat 파일로 하는건 어떨까요

    하시면 아래와 같은 txt파일이 나와요

    #result.txt
    ...
    services.exe 756 Services 0 10,296 K 
    lsass.exe 828 Services 0 14,840 K 
    svchost.exe 948 Services 0 2,780 K 
    fontdrvhost.exe 968 Services 0 1,596 K 
    svchost.exe 984 Services 0 28,296 K 
    ...
    

    python으로 하시겠다면 아래의 방식으로 하시면

    위와 같은 출력결과 볼수 있을거예요

    a = open('tmp.txt', 'r')
    result = ''
    for i in a:
        b = " ".join(i.split())
        b += "\n"
        result += b
    print(result)
    
    • 너무 감사합니다~ godmin18 2020.5.29 10:36

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)