gzip, uuencode 및 표준 출력에 필요한 데이터가 있습니다. 내가 기본적으로 가지고있는 것은 :스트림 및 다중 프로세스를 닫는 Python Popen
compressor = Popen("gzip", stdin = subprocess.PIPE, stdout = subprocess.PIPE)
encoder = Popen(["uuencode", "dummy"], stdin = compressor.stdout)
나는 압축기에 데이터를 보내는 방법은 compressor.stdin.write (stuff)를 통해서이다.
내가 정말로해야 할 일은 압축기에 EOF를 보내는 것입니다. 어떻게해야할지 모르겠습니다.
언젠가는 compressor.stdin.close()를 시도했지만 작동하지 않습니다. 압축기가 파일에 직접 기록 할 때 제대로 작동하지만 위의 경우 프로세스가 종료되지 않고 compressor.wait()에서 멈 춥니 다.
제안 사항? 이 경우, gzip은 예제이며 한 프로세스의 출력을 다른 프로세스로 파이핑하여 실제로 처리해야합니다.
참고 : 압축해야하는 데이터는 메모리에 맞지 않으므로 의사 소통은 실제로 좋은 옵션이 아닙니다. 또한, 난 그냥 위의 2 선 이후
compressor.communicate("Testing")
을 실행하면, 여전히 ZLIB 사용을 고려 오류
File "/usr/lib/python2.4/subprocess.py", line 1041, in communicate rlist, wlist, xlist = select.select(read_set, write_set, [])
cobbal의 대답은 gzip에서 작동하지만 실제로는 그냥 예입니다. – bsdfish