cari
Rumahpembangunan bahagian belakangTutorial PythonModul subprocess Python gagal melaksanakan perintah data WMIC. Bagaimana menyelesaikannya?

Modul subprocess Python gagal melaksanakan perintah data WMIC. Bagaimana menyelesaikannya?

Penyelesaian untuk gagal melaksanakan perintah wmic datafile dalam modul subprocess python

Ramai pemaju mungkin menghadapi masalah apabila melaksanakan arahan sistem menggunakan modul subprocess Python. Artikel ini menyelesaikan masalah yang sama: Perintah wmic datafile yang boleh dilaksanakan secara normal dalam command prompt (cmd.exe) tidak dapat memperoleh hasil yang diharapkan dalam modul subprocess Python.

Penerangan Masalah:

Cuba gunakan modul subprocess untuk melaksanakan arahan berikut untuk mendapatkan maklumat versi pelayar Chrome:

 WMIC Datafile Where Name = "C: \\ Program Files \\ Google \\ Chrome \\ Application \\ Chrome.exe" Dapatkan Versi /Nilai

Dalam cmd.exe, arahan itu mengembalikan nombor versi dengan betul, sebagai contoh:

 <code>version=110.0.5481.178</code>

Walau bagaimanapun, menggunakan modul subprocess Python untuk melaksanakan arahan yang sama, mengembalikan hasil kosong atau ralat.

Penyelesaian:

Masalahnya terletak pada pengendalian modul subprocess parameter perintah dan masalah pengekodan watak yang berpotensi. Coretan Python berikut menunjukkan cara melaksanakan arahan wmic datafile dan dapatkan hasilnya:

 Import subprocess

chrome_path = r "c: \\ Program Files \\ Google \\ Chrome \\ Application \\ Chrome.exe"
perintah = ["wmic", "datafile", "where", f "name = '{chrome_path}'", "get", "version", "/value"]
Cuba:
    hasil = subprocess.check_output (command, text = true, stderr = subprocess.pipe)
    versi = result.strip (). Split ('\ n') [1] .split ('=') [1] .split () # Nombor versi ekstrak
    cetak (f "versi krom: {versi}")
Kecuali subprocess.CalledProcessError sebagai E:
    cetak (f "ralat pelaksanaan perintah: {e}")
    cetak (f "stderr: {e.stderr}")
Kecuali indeksror:
    Cetak ("Tidak dapat menghuraikan maklumat versi dari output.")

Penambahbaikan utama kod ini adalah:

  1. Gunakan f-string untuk pemformatan parameter: mengendalikan laluan lebih ringkas, mengelakkan kerumitan manual melarikan diri dan rentetan pemformatan.
  2. text=True : Tentukan text=True TELLS subprocess UNTUK MENGGUNAKAN MODE TEXT DAN MEMBUAT PROSES THE OUTPUT MATCHED.
  3. stderr=subprocess.PIPE : Menangkap output ralat standard untuk kesilapan debugging.
  4. Pengendalian ralat: Gunakan try...except blok untuk mengendalikan potensi subprocess.CalledProcessError dan IndexError untuk menyediakan lebih banyak kod yang mantap.
  5. Pengekstrakan Maklumat Versi: Mengurangkan hasil output, ekstrak nombor versi, dan elakkan bergantung pada butiran khusus format output.

Melalui pengubahsuaian ini, modul subprocess boleh melaksanakan arahan wmic datafile dan mengembalikan maklumat versi Chrome yang dijangkakan. Ini menyelesaikan masalah yang dapat dilaksanakan secara normal di cmd.exe tetapi tidak dapat memperoleh hasil dalam python. Mekanisme pengendalian ralat yang lebih baik juga menjadikan kod lebih mantap.

Atas ialah kandungan terperinci Modul subprocess Python gagal melaksanakan perintah data WMIC. Bagaimana menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Pendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanPendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanMay 08, 2025 am 12:16 AM

Pythonusesahybridapproach, combiningcompilationtobytecodeandinterpretation.1) codeiscompiledtopplatform-independentbytecode.2) byteCodeisinterpretedbythepythonvirtualmachine, enhancingficiencyAndortability.

Ketahui perbezaan antara gelung 'untuk' dan 'sementara' PythonKetahui perbezaan antara gelung 'untuk' dan 'sementara' PythonMay 08, 2025 am 12:11 AM

TheKeydifferencesbetweenpython's "for" and "while" loopsare: 1) "untuk" loopsareidealforiteratingoversequencesorknowniterations, while2) "manakala" loopsarebetterforcontinuinguntilaconditionismetwithoutpredefinediterations.un

Senarai concatenate python dengan penduaSenarai concatenate python dengan penduaMay 08, 2025 am 12:09 AM

Di Python, anda boleh menyambungkan senarai dan menguruskan elemen pendua melalui pelbagai kaedah: 1) Gunakan pengendali atau melanjutkan () untuk mengekalkan semua elemen pendua; 2) Tukar ke set dan kemudian kembali ke senarai untuk mengalih keluar semua elemen pendua, tetapi pesanan asal akan hilang; 3) Gunakan gelung atau senarai pemantauan untuk menggabungkan set untuk menghapuskan elemen pendua dan mengekalkan urutan asal.

Python List Concatenation Prestasi: Perbandingan KelajuanPython List Concatenation Prestasi: Perbandingan KelajuanMay 08, 2025 am 12:09 AM

ThfastestmethodforlistconcatenationInpythondondedonListsize: 1) forsmalllists, the operatoriseSefficient.2) forlargerlists, list.extend () orlistComprehensionisfaster, withExtend () ausmorememory-efficientyModifingListsin-tempat.

Bagaimana anda memasukkan elemen ke dalam senarai python?Bagaimana anda memasukkan elemen ke dalam senarai python?May 08, 2025 am 12:07 AM

ToinSertelementsIntoapythonlist, useAppend () toaddtotheend, memasukkan () foraspecificposition, andExtend () formultipleelements.1) useAppend () foraddingsingleitemstotheend.2) useInsert () toaddataSpecificIndex, evenItForForForForForForShoStoRd

Adakah Python menyenaraikan susunan dinamik atau senarai yang dipautkan di bawah tudung?Adakah Python menyenaraikan susunan dinamik atau senarai yang dipautkan di bawah tudung?May 07, 2025 am 12:16 AM

Pythonlistsareimplementedasdynamicarrays, notlinkedlists.1) thearestoredincontiguousmemoryblocks, yangMayrequireReAllocationWhenAppendingItems, ImpactingPormance.2) LinkedListSwouldOfferefficientInsertions/DeletionsButsCoweCcess

Bagaimana anda membuang elemen dari senarai python?Bagaimana anda membuang elemen dari senarai python?May 07, 2025 am 12:15 AM

PythonoffersfourmainmethodstoremoveelementsFromalist: 1) Keluarkan (nilai) RemoveStHefirStoccurrenceFavalue, 2) Pop (index) RemoveRandReturnSanelementAtaspeciedIndex, 3)

Apa yang perlu anda periksa jika anda mendapat ralat 'kebenaran ditolak' apabila cuba menjalankan skrip?Apa yang perlu anda periksa jika anda mendapat ralat 'kebenaran ditolak' apabila cuba menjalankan skrip?May 07, 2025 am 12:12 AM

Ralat toresolvea "kebenaran" yang mana -mana, berikut: 1) checkandadjustthescript'spermissionsingchmod xmyscript.shtomakeitexecutable.2) EnsurethescriptislocatedInadirectoryHeryouhaveVerPiSs, suchasyoursory, suchasyourshy, suchasyourperhysh, suchasyourshy.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft