파이썬 3을 사용하여 명령 출력에서 특정 열을 캡처하고 싶습니다.

라비 오픈 소스

우분투 컴퓨터에서 "dpkg -l"명령 출력의 두 번째 열을 캡처하고 싶습니다. 파이썬 3을 사용하고 하위 프로세스 모듈을 사용하고 싶습니다. 다음 명령 :

fh=open("/tmp/test.out", 'wb')
with subprocess.Popen(["dpkg", "-l"], stdout=subprocess.PIPE) as proc:
   fh.write(proc.stdout.read())

다음과 같이 반환됩니다.

ii yum 3.4.3-3 all Advanced front-end for rpm  
ii zeitgeist-core 1.0-0ubuntu4 amd64 event logging framework - engine  
ii zenity 3.24.0-1 amd64 Display graphical dialog boxes from shell scripts  
ii zenity-common 3.24.0-1 all Display graphical dialog boxes from shell scripts   
ii zip 3.0-11build1 amd64 Archiver for .zip files  
ii zita-ajbridge 0.7.0-1 amd64 alsa to jack bridge  
ii zita-at1 0.6.0-1 amd64 JACK autotuner  
ii zita-lrx 0.1.0-3 amd64 Command line jack application providing crossover filters  
ii zita-mu1 0.2.2-2 amd64 organise stereo monitoring for Jack Audio Connection Kit  
.....  
.....  

두 번째 열을 얻고 싶습니다. 예 :

....  
....  
yum  
zeitgeist-core  
zenity  
zenity-common  
zip  
....  
.... etc etc  

도와주세요

>>> with subprocess.Popen(["dpkg", "-l"], stdout=subprocess.PIPE) as proc:
...     line1=proc.stdout.read()
...     type(line1)
...
<class 'bytes'>

유형은 바이트입니다. 분할하는 방법. 다음을 사용할 때 :

>>> with subprocess.Popen(["dpkg", "-l"], stdout=subprocess.PIPE) as proc:
...     line1=proc.stdout.read()
...     line2=str(line)  # the type is byte so I try to convert to string
...     print(line2)
...
10

(출력이 엉망이 됨)

Jacob Vlijm

시스템 호출의 출력을 얻는 방법은 매우 구식입니다. 사용하다

subprocess.check_output()

대신 :

#!/usr/bin/env python3
import subprocess

f = "/home/jacob/Desktop/output.txt"

lines = subprocess.check_output(["dpkg", "-l"]).decode("utf-8").splitlines()
with open(f, "wt") as out:
    for l in lines:
        if l.startswith("ii"):
            out.write(l.split()[1] + "\n")

f출력 파일의 실제 경로로 바꿉니다 .

결과물 파일:

...
...
apg
app-install-data
app-install-data-partner
apparmor
apport
apport-gtk
apport-retrace
apport-symptoms
appstream
apt
apt-transport-https
...
...

노트

위의 솔루션은 빈 줄로 끝나는 파일을 만듭니다. 이것이 문제라면 아래 해결책을 사용하십시오.

#!/usr/bin/env python3
import subprocess

f = "/home/jacob/Bureaublad/output.txt"

lines = subprocess.check_output(["dpkg", "-l"]).decode("utf-8").splitlines()
open(f, "wt").write(
    "\n".join([l.split()[1] for l in lines if l.startswith("ii")])
)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬 3.4를 사용하여 for 루프에서 특정 줄을 한 번만 인쇄하고 싶습니다.

분류에서Dev

명령 출력 값을 사용하여 배치 파일을 통해 로컬 관리자 암호를 설정하고 싶습니다.

분류에서Dev

파일에서 특정 열을 추출하고 싶습니다. 열 번호는 쉘 스크립팅을 사용하여 다른 파일에 제공됩니까?

분류에서Dev

파일에서 문자열을 분할하여 파일을 구문 분석하고 단일 명령을 사용하여 원하는 출력을 얻습니다.

분류에서Dev

변수에서 명령 출력을 캡처하고 억제

분류에서Dev

csv 파일에서 특정 열을 읽고 파이썬을 사용하여 다른 CSV에 씁니다.

분류에서Dev

파이썬에 문자열을 나열하고 싶습니다.

분류에서Dev

단일 명령을 입력하여 여러 파일의 출력을 확인하고 싶습니다.

분류에서Dev

Bash : 명령에서 출력을 캡처하고 조건부로 처리

분류에서Dev

파이썬에서 문자열 형식을 사용하여 원하는 출력을 얻을 수 없습니다.

분류에서Dev

사용자가 파이썬에서 특정 형식에 따라 명령을 입력하도록 만드는 방법은 무엇입니까?

분류에서Dev

FIND + TAR 명령을 사용하여 특정 파일을 추출하는 방법

분류에서Dev

정렬을 변경하지 않고 Linux 명령을 사용하여 터미널에서 새 파일로 출력을 쓰는 방법은 무엇입니까?

분류에서Dev

watch 명령을 사용하여 파일의 최상위 명령 출력을 캡처 할 수 없음

분류에서Dev

표현식이있는 특정 열의 최대 열 값을 사용하여 BigQuery에서 레코드 중복을 제거하고 싶습니다.

분류에서Dev

파이썬에서 여러 정규식을 사용하여 특정 텍스트를 추출합니까?

분류에서Dev

파이썬 코드에 문제가 있습니다. 바이너리 코드를 열거하고 출력에서 공백을 제거하고 싶습니다.

분류에서Dev

bash 명령의 출력을 캡처하여 구문 분석하고 다른 bash 변수에 저장

분류에서Dev

특정 기준에 따라 다른 파일의 일부 이름을 배열로 복사하고 싶습니다.

분류에서Dev

Git 명령을 사용하여 특정 디렉토리의 "원격 저장소"파일을 나열합니다.

분류에서Dev

R에서 : system ()을 사용하여 공백이있는 파이썬 명령을 전달합니다.

분류에서Dev

beautifulsoup을 사용하여 파이썬의 링크에서 내용을 얻고 싶습니다.

분류에서Dev

xlsx에서는 파이썬을 사용하여 구분 기호 ''를 사용하여 단일 열을 여러 개로 나누고 싶었습니다.

분류에서Dev

파이썬에서 정규식을 사용하여 텍스트 파일에서 특정 문자열 추출

분류에서Dev

병렬 명령을 실행하고 출력을 특정 이름의 파일로 리디렉션합니다.

분류에서Dev

파이썬의 특정 줄 / 문자열에서 한 줄을 다시 읽고 싶습니다.

분류에서Dev

psql에서 alter 명령을 사용하여 제약 조건을 추가하고 싶습니다.

분류에서Dev

파이썬의 하위 프로세스 또는 pycurl을 통해 curl 명령을 실행하고 싶습니다.

분류에서Dev

TCSH : 명령 출력을 표시하고 파일로 리디렉션하고 싶습니다.

Related 관련 기사

  1. 1

    파이썬 3.4를 사용하여 for 루프에서 특정 줄을 한 번만 인쇄하고 싶습니다.

  2. 2

    명령 출력 값을 사용하여 배치 파일을 통해 로컬 관리자 암호를 설정하고 싶습니다.

  3. 3

    파일에서 특정 열을 추출하고 싶습니다. 열 번호는 쉘 스크립팅을 사용하여 다른 파일에 제공됩니까?

  4. 4

    파일에서 문자열을 분할하여 파일을 구문 분석하고 단일 명령을 사용하여 원하는 출력을 얻습니다.

  5. 5

    변수에서 명령 출력을 캡처하고 억제

  6. 6

    csv 파일에서 특정 열을 읽고 파이썬을 사용하여 다른 CSV에 씁니다.

  7. 7

    파이썬에 문자열을 나열하고 싶습니다.

  8. 8

    단일 명령을 입력하여 여러 파일의 출력을 확인하고 싶습니다.

  9. 9

    Bash : 명령에서 출력을 캡처하고 조건부로 처리

  10. 10

    파이썬에서 문자열 형식을 사용하여 원하는 출력을 얻을 수 없습니다.

  11. 11

    사용자가 파이썬에서 특정 형식에 따라 명령을 입력하도록 만드는 방법은 무엇입니까?

  12. 12

    FIND + TAR 명령을 사용하여 특정 파일을 추출하는 방법

  13. 13

    정렬을 변경하지 않고 Linux 명령을 사용하여 터미널에서 새 파일로 출력을 쓰는 방법은 무엇입니까?

  14. 14

    watch 명령을 사용하여 파일의 최상위 명령 출력을 캡처 할 수 없음

  15. 15

    표현식이있는 특정 열의 최대 열 값을 사용하여 BigQuery에서 레코드 중복을 제거하고 싶습니다.

  16. 16

    파이썬에서 여러 정규식을 사용하여 특정 텍스트를 추출합니까?

  17. 17

    파이썬 코드에 문제가 있습니다. 바이너리 코드를 열거하고 출력에서 공백을 제거하고 싶습니다.

  18. 18

    bash 명령의 출력을 캡처하여 구문 분석하고 다른 bash 변수에 저장

  19. 19

    특정 기준에 따라 다른 파일의 일부 이름을 배열로 복사하고 싶습니다.

  20. 20

    Git 명령을 사용하여 특정 디렉토리의 "원격 저장소"파일을 나열합니다.

  21. 21

    R에서 : system ()을 사용하여 공백이있는 파이썬 명령을 전달합니다.

  22. 22

    beautifulsoup을 사용하여 파이썬의 링크에서 내용을 얻고 싶습니다.

  23. 23

    xlsx에서는 파이썬을 사용하여 구분 기호 ''를 사용하여 단일 열을 여러 개로 나누고 싶었습니다.

  24. 24

    파이썬에서 정규식을 사용하여 텍스트 파일에서 특정 문자열 추출

  25. 25

    병렬 명령을 실행하고 출력을 특정 이름의 파일로 리디렉션합니다.

  26. 26

    파이썬의 특정 줄 / 문자열에서 한 줄을 다시 읽고 싶습니다.

  27. 27

    psql에서 alter 명령을 사용하여 제약 조건을 추가하고 싶습니다.

  28. 28

    파이썬의 하위 프로세스 또는 pycurl을 통해 curl 명령을 실행하고 싶습니다.

  29. 29

    TCSH : 명령 출력을 표시하고 파일로 리디렉션하고 싶습니다.

뜨겁다태그

보관