Berdasarkan keusangan beransur-ansur os.popen yang memihak kepada subprocess.popen, ramai pembangun menghadapi kesukaran untuk menterjemah sedia ada kod untuk menampung peralihan ini. Panduan ini bertujuan untuk menyediakan penyelesaian yang komprehensif untuk menukar perintah os.popen dengan lancar kepada subprocess.popen yang setara, memastikan peralihan yang lancar.
Perbezaan utama antara os.popen dan subprocess.popen terletak pada pengendalian hujah mereka. Walaupun os.popen menjangkakan rentetan tunggal yang mewakili perintah, subprocess.popen beroperasi pada senarai argumen.
Mari kita pertimbangkan contoh yang disediakan dalam pertanyaan asal:
os.popen('swfdump /tmp/filename.swf/ -d')
Untuk menukar ini perintah kepada subprocess.popen, kami hanya melampirkan hujah dalam kurungan segi empat sama:
<code class="python">import subprocess from subprocess import PIPE process = subprocess.Popen(['swfdump', '/tmp/filename.swf', '-d'], stdout=PIPE, stderr=PIPE) stdout, stderr = process.communicate()</code>
Kod ini betul-betul mereplikasi gelagat panggilan os.popen asal.
Perlu disebut subproses itu. Popen menawarkan ciri tambahan dan pilihan penyesuaian, seperti keupayaan untuk mengawal input, output dan pengendalian ralat.
Untuk panduan lebih terperinci tentang berhijrah dari os.popen ke subproses, rujuk dokumentasi Python rasmi, yang merangkumi bahagian khusus mengenai topik ini.
Atas ialah kandungan terperinci Bagaimana untuk Berhijrah daripada `os.popen` kepada `subprocess.popen` dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!