


Bagaimanakah Saya Boleh Menstrim Baris Output Subproses mengikut Baris dalam Python?
Penstriman Output daripada subprocess.communicate()
Fungsi subprocess.communicate() Python berguna untuk menangkap stdout proses. Walau bagaimanapun, ia biasanya mengembalikan semua output sekaligus. Ini boleh menyusahkan proses yang menjana output dalam tempoh yang berpanjangan. Untuk menangani perkara ini, kami meneroka teknik untuk mencetak setiap baris stdout proses dalam fesyen penstriman.
Penyelesaian
Dengan menggunakan mekanisme lelaran, kami boleh mendapatkan semula baris daripada stdout sebaik sahaja ia menjadi tersedia:
from subprocess import Popen, PIPE # Launch a process with buffering set to 1 byte p = Popen(["cmd", "arg1"], stdout=PIPE, bufsize=1) # Iterate over the stdout lines as they become available with p.stdout: for line in iter(p.stdout.readline, b''): print(line, end='') # Wait for the process to terminate p.wait()
Penjelasan
- iter(p.stdout.readline, b''): Ini mencipta iterator yang membaca baris secara berterusan daripada p .stdout dengan cara tidak menyekat.
- end='': Ini memastikan setiap baris dicetak tanpa mengekori watak baris baharu.
- p.wait(): Setelah iterator habis, fungsi ini menunggu proses selesai sebelum meneruskan.
Nota Tambahan
- Untuk Python 2, iter() diperlukan untuk menyelesaikan bacaan ke hadapan pepijat.
- Untuk Python 3, pilihan universal_newlines secara automatik menyahkod stdout kepada teks.
- Kaedah alternatif, seperti Peexpect atau utiliti tidak buffer, juga boleh digunakan untuk memaksa stdout tidak buffer.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menstrim Baris Output Subproses mengikut Baris dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Forhandlinglargedatasetsinpython, usenumpyarraysforbetterperformance.1) numpyarraysarememory-efisien danfasterfornumumerical.2) mengelakkan yang tidak dapat dipertahankan.3)

Inpython, listsusedynamicMemoryAllocationwithover-peruntukan, pemecahan yang tidak dapat dilaksanakan.1) listsallocatemoremoremorythanneedinitial, resizingwhennessary.2) numpyarraysallocateExactMemoreForelements, menawarkanpredictableSabeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeBeat.

Inpython, YouCansspectHedatypeyFeleMeremodelerernspant.1) Usenpynernrump.1) usenpynerp.dloatp.ploatm64, formor preciscontrolatatypes.

Numpyisessentialfornumericalcomputinginpythonduetoitsspeed, ingatanefisiensi, dancomprehensivemathematicalfunctions.1) it'sfastbeCauseitperformsoperatiation

Contiguousmemoryallocationiscialforarraysbecauseitallowsficientandfastelementaccess.1) itenablesconstantTimeAccess, O (1), duetodirectaddresscalculation.2) itimproveScheFiCiencyBymultmulteLemiSphetfespercacheline.3)

Slicingapythonlistisdoneusingthesyntaxlist [Mula: berhenti: langkah] .here'showitworks: 1) startistheindexofthefirstelementtoinclude.2) stopistheindexofthefirstelementToexclude.3)

NumpyallowsforvariousoperationsonArrays: 1) BasicarithmeticLikeaddition, penolakan, pendaraban, danDivision; 2) Pengerjaan AdvancedSuchasmatrixmultiplication; 3) Element-WiseOperationswithoutExplicitLoops;

Arraysinpython, terutamanya yang ada, adalah, penawaran yang ditawarkan.1) numpyarraysenableFandlingoflargedataSetsandClexPleperationsLikemovingAverages.2)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
