2017-11-07 1 views
1

"경고 : apt에는 안정적인 CLI 인터페이스가 없으므로주의해서 스크립트에서 사용하십시오."라는 메시지가 나타납니다. 파이썬 하위 프로세스에서 적절한 실행할 때 나는 성가신 경고 것을 제거 할 수있는 방법python 스크립트에서 apt를 사용할 때 stdout에서 특정 메시지를 제외하는 방법은 무엇입니까?

process = subprocess.Popen(['apt', 'upgrade', '-y'], stdout=subprocess.PIPE)

을하는 간단한 스크립트에서

? 출력의 나머지 부분에는 신경 쓰지 않고 경고 만 없애고 싶습니다.

편집 : APT에서 라이브 출력을 얻을 수 있도록

I 출력 불구하고 반복하고있다. 어떻게 제거 할 수 있습니까?

with open('test.log', 'w') as f: 
     process = subprocess.Popen(['apt', 'upgrade', '-y'], 
            stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
     for line in iter(process.stdout.readline, ''): 
       sys.stdout.write(line) 
       f.write(line) 

답변

1

이 메시지는 stderr를 통해 전송됩니다. 나는 당신이 stdout과 마찬가지로 그것을 파이프로 포착 할 것이다.

>>> process = subprocess.Popen(['apt', 'search', 'python'], stdout=subprocess.PIPE, 
...               stderr=subprocess.PIPE) 
>>> stdout, stderr = process.communicate() 
>>> stderr 
'\nWARNING: apt does not have a stable CLI interface. Use with caution in scripts.\n\n' 
+0

안녕하십니까, 내 업데이트 된 질문을 참조하십시오. 나는 아직도 그 경고를 어떻게 제외 시킬지 아직 확실하지 않다. – answerSeeker

+0

@answerSeeker : 업데이트 된 코드로 해당 메시지가 생성되지 않습니다. – Blender

+0

아 감사합니다!. 나는 그것이 같았지만 stderr = subprocess라고 생각했다. PIPE은 정말로 그것을 고쳤다. – answerSeeker

관련 문제