파이썬에서 목록으로 분할하는 문제

찬드라

이것은 내 파이썬 코드입니다. 이 코드에서 str1 필드에는 사용자 명령 (w)의 출력이 포함됩니다. 마지막 필드 (WHAT)에는 하나 이상의 공백이 포함될 수 있습니다. 명령 (w)의 출력에서 ​​목록을 만들려고합니다.

문제 : 두 번째 행에서 예상 출력을 얻지 못하기 때문에 FROM 필드에 값이 없습니다. (FROM 필드)에 값이 포함되어 있으면 예상 출력이 표시됩니다.

암호:

import re
lista, listb, list_final =[],[],[]
str1 = '''17:36:34 up 17 days,  1:48,  3 users,  load average: 6.33, 5.37, 5.46
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
Arul     abc/0    10.XXX.XX.X1     14:41    2:31m  2.04s  1.97s ssh [email protected]
Peter    abc/1                     17:36    1.00s  0.08s  0.02s w
Joe      abc/3    10.XXX.XX.X3     13:59    2:41m  4:38   0.08s /opt/ google  /  chrome/chrome'''

str1 = re.sub('  +', ' ', str1)
lista = str1.splitlines ()
lista = lista[2:]
listb=[re.split(" ", el, maxsplit=7) for el in lista]
print (listb)

위의 코드는 아래와 같은 결과를 생성합니다.

[['Arul', 'abc/0', '10.XXX.XX.X1', '14:41', '2:31m', '2.04s', '1.97s', 'ssh [email protected]'],
['Peter', 'abc/1', '17:36', '1.00s', '0.08s', '0.02s', 'w'],
['Joe', 'abc/3', '10.XXX.XX.X3', '13:59', '2:41m', '4:38', '0.08s', '/opt/ google / chrome/chrome']]

다음과 같은 결과를 기대하고 있습니다. (필드 (FROM)에 null 값이 포함 된 경우 목록 출력에 동일한 값을 입력해야합니다.
예상 결과 :

[['Arul', 'abc/0', '10.XXX.XX.X1', '14:41', '2:31m', '2.04s', '1.97s', 'ssh [email protected]'],
['Peter', 'abc/1', '            ', '17:36', '1.00s', '0.08s', '0.02s', 'w'],
['Joe', 'abc/3', '10.XXX.XX.X3', '13:59', '2:41m', '4:38', '0.08s', '/opt/ google / chrome/chrome']]
라니 피쉬
lista, listb, list_final = [], [], []
str1 = '''17:36:34 up 17 days,  1:48,  3 users,  load average: 6.33, 5.37, 5.46
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
Arul     abc/0    10.XXX.XX.X1     14:41    2:31m  2.04s  1.97s ssh [email protected]
Peter    abc/1                     17:36    1.00s  0.08s  0.02s w
Joe      abc/3    10.XXX.XX.X3     13:59    2:41m  4:38   0.08s /opt/ google  /  chrome/chrome'''

lista = str1.splitlines()

first_row = lista[1]
indices = [first_row.index(x) for x in first_row.split()]
lista = lista[2:]
lines_splitted = []

#split according to first line
for line in lista:
    l = []
    for i in range(0, len(indices) - 1):
        l.append(line[indices[i]:indices[i + 1]])
    l.append(line[indices[-1]:])
    lines_splitted.append(l)

# adjust whitespaces
for index in range(0, 8):
    for line_splitted in lines_splitted:
        if line_splitted[index].isspace():
            lengths = [len(x[index].strip()) for x in lines_splitted]
            max_length = max(lengths)
            line_splitted[index] = line_splitted[index].strip() + ' ' * max_length

# remove others whitespaces
for index in range(0, 8):
    for line_splitted in lines_splitted:
        if not line_splitted[index].isspace():
            line_splitted[index] = line_splitted[index].strip()


print(*lines_splitted, sep='\n')

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬에서 문자열 목록을 하위 목록으로 분할

분류에서Dev

파이썬에서 목록을 다른 문자열로 분할하는 방법

분류에서Dev

파이썬 목록에서 반복되는 문자 제거

분류에서Dev

목록에서 특정 항목을 제거하지만 일부는 파이썬으로 유지

분류에서Dev

파이썬에서 문자열을 목록으로 변환하는 방법. "[ 'a']"에서 [ 'a']까지

분류에서Dev

파이썬의 사전으로 중간에 제목이있는 일반 목록

분류에서Dev

열거 형 목록을 문자열 파이썬으로 분리하는 방법

분류에서Dev

파이썬에서 접두사로 시작하는 목록에서 문자열을 제거하는 방법

분류에서Dev

파이썬에서 첫 번째 숫자로 시작하는 문자열 분할

분류에서Dev

파이썬에서 첫 번째 숫자로 시작하는 문자열 분할

분류에서Dev

파이썬에서 beautifulsoup으로 문제를 피하십시오.

분류에서Dev

목록 파이썬에서 요소 분할 및 제거

분류에서Dev

파이썬에서 하나의 명령문으로 목록 인덱스를 연결할 수 있습니까?

분류에서Dev

파일에서 회문을 검색하고 파이썬으로 목록에 인쇄

분류에서Dev

동적 문자열을 특정 부분으로 분할 또는 청크하고 파이썬에서 병합

분류에서Dev

공백으로 목록 목록 내에서 문자열 분할

분류에서Dev

길이에 따라 문자열 목록을 하위 목록으로 분할

분류에서Dev

문자열을 [시작 문자로,]를 쉼표로 구분 된 끝 문자로 파이썬에서 두 목록으로 분할

분류에서Dev

파이썬에서 목록 (분할 된 문자열)을 반복하는 방법-for x in string

분류에서Dev

파이썬에서 문자열 대신 목록으로 파일 줄을 읽는 방법

분류에서Dev

'!'를 제거하는 방법 파이썬 목록의 각 문자열 끝에서?

분류에서Dev

파이썬에서 목록을 사용하는 초보자 문제

분류에서Dev

파이썬에서 사전 목록을 여러 사전 목록으로 분할

분류에서Dev

파이썬에서 분할 된 목록을 어휘 적으로 정렬하기

분류에서Dev

파이썬에서 공백을 기반으로 항목을 분할하지 않는 고유 목록

분류에서Dev

특정 문자에서 시작하는 공백으로 파이썬 문자열 분할

분류에서Dev

R에서 파이썬 목록을 구문 분석하는 방법?

분류에서Dev

파이썬으로 사이드 문자열에서 " '[[]]"를 제거하는 방법

분류에서Dev

파이썬에서 단어 목록을 제외하고 텍스트의 문자를 공백으로 바꾸는 방법

Related 관련 기사

  1. 1

    파이썬에서 문자열 목록을 하위 목록으로 분할

  2. 2

    파이썬에서 목록을 다른 문자열로 분할하는 방법

  3. 3

    파이썬 목록에서 반복되는 문자 제거

  4. 4

    목록에서 특정 항목을 제거하지만 일부는 파이썬으로 유지

  5. 5

    파이썬에서 문자열을 목록으로 변환하는 방법. "[ 'a']"에서 [ 'a']까지

  6. 6

    파이썬의 사전으로 중간에 제목이있는 일반 목록

  7. 7

    열거 형 목록을 문자열 파이썬으로 분리하는 방법

  8. 8

    파이썬에서 접두사로 시작하는 목록에서 문자열을 제거하는 방법

  9. 9

    파이썬에서 첫 번째 숫자로 시작하는 문자열 분할

  10. 10

    파이썬에서 첫 번째 숫자로 시작하는 문자열 분할

  11. 11

    파이썬에서 beautifulsoup으로 문제를 피하십시오.

  12. 12

    목록 파이썬에서 요소 분할 및 제거

  13. 13

    파이썬에서 하나의 명령문으로 목록 인덱스를 연결할 수 있습니까?

  14. 14

    파일에서 회문을 검색하고 파이썬으로 목록에 인쇄

  15. 15

    동적 문자열을 특정 부분으로 분할 또는 청크하고 파이썬에서 병합

  16. 16

    공백으로 목록 목록 내에서 문자열 분할

  17. 17

    길이에 따라 문자열 목록을 하위 목록으로 분할

  18. 18

    문자열을 [시작 문자로,]를 쉼표로 구분 된 끝 문자로 파이썬에서 두 목록으로 분할

  19. 19

    파이썬에서 목록 (분할 된 문자열)을 반복하는 방법-for x in string

  20. 20

    파이썬에서 문자열 대신 목록으로 파일 줄을 읽는 방법

  21. 21

    '!'를 제거하는 방법 파이썬 목록의 각 문자열 끝에서?

  22. 22

    파이썬에서 목록을 사용하는 초보자 문제

  23. 23

    파이썬에서 사전 목록을 여러 사전 목록으로 분할

  24. 24

    파이썬에서 분할 된 목록을 어휘 적으로 정렬하기

  25. 25

    파이썬에서 공백을 기반으로 항목을 분할하지 않는 고유 목록

  26. 26

    특정 문자에서 시작하는 공백으로 파이썬 문자열 분할

  27. 27

    R에서 파이썬 목록을 구문 분석하는 방법?

  28. 28

    파이썬으로 사이드 문자열에서 " '[[]]"를 제거하는 방법

  29. 29

    파이썬에서 단어 목록을 제외하고 텍스트의 문자를 공백으로 바꾸는 방법

뜨겁다태그

보관