파이썬 join, split 공백 줄이기
조회수 958회
제가 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 답변
-
#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)
댓글 입력