Gunakan subprocess.run () untuk melaksanakan perintah shell dengan selamat dan menangkap output. Adalah disyorkan untuk lulus parameter dalam senarai untuk mengelakkan risiko suntikan; 2. Apabila ciri -ciri shell diperlukan, anda boleh menetapkan shell = benar, tetapi berhati -hati dengan suntikan arahan; 3. Gunakan subprocess.popen untuk merealisasikan pemprosesan output masa nyata; 4. Tetapkan semak = benar untuk membuang pengecualian apabila arahan gagal; 5. Dalam senario mudah, anda boleh memanggil secara langsung untuk mendapatkan output; subprocess.run () harus diberi keutamaan dalam penggunaan harian untuk mengelakkan menggunakan modul os.system () atau yang tidak ditetapkan. Kaedah di atas mengatasi penggunaan teras untuk melaksanakan perintah shell di Python.
Terdapat banyak cara untuk melaksanakan arahan shell di Python, dan yang paling biasa digunakan adalah menggunakan modul subprocess
. Berikut adalah beberapa contoh praktikal yang menunjukkan cara menjalankan perintah shell di Python.

1. Gunakan subprocess.run()
(kaedah yang disyorkan)
Ini adalah kaedah yang disyorkan dalam Python 3.5, yang mudah, selamat dan berkuasa.
Import subprocess # Jalankan hasil perintah shell yang mudah = subprocess.run (['ls', '-l'], capture_output = true, text = true) # Kod Kembali Perintah Output, Output Standard dan Ralat Cetak ("Kod Kembali:", Result.ReturnCode) Cetak ("Output: \ n", result.stdout) Cetak ("Ralat: \ n", result.stderr)
? Nota:
['ls', '-l']
adalah untuk lulus parameter dalam bentuk senarai untuk mengelakkan risiko suntikan shell. Jika ciri -ciri shell diperlukan (seperti wildcard, paip), tambahshell=True
.
2. Jalankan arahan dengan ciri -ciri shell (menggunakan shell=True
)
Import subprocess hasil = subprocess.run ('echo $ home | xargs ls', shell = true, capture_output = true, text = true) Cetak ("Output: \ n", result.stdout)
?? Amaran: Berhati -hati apabila menggunakan shell=True
untuk mengelakkan suntikan arahan.
3. Proses pelaksanaan arahan output masa nyata (tidak menunggu siap)
Sekiranya anda ingin melihat output arahan masa nyata (seperti skrip jangka panjang):

Import subprocess # Proses cetakan masa nyata = subprocess.popen (['ping', '-c', '5', 'google.com'], stdout = subprocess.pipe, text = true) Untuk baris dalam proses.stdout: Cetak ("Output:", line.strip ()) Process.wait () # Tunggu cetakan siap ("Lengkap, kod kembali:", Process.ReturnCode)
4. Jalankan arahan dan dapatkan nilai pulangan untuk menentukan sama ada ia berjaya
Import subprocess Cuba: subprocess.run (['python', '--version'], semak = benar, capture_output = benar, teks = benar) cetak ("pelaksanaan perintah berjaya") Kecuali subprocess.CalledProcessError sebagai E: Cetak ("Pelaksanaan Perintah Gagal:", E)
-
check=True
akan membuang pengecualian apabila arahan itu kembali ke keadaan bukan sifar.
5. Cepat melaksanakan dan mendapatkan output (sesuai untuk senario mudah)
Jika anda hanya ingin mendapatkan output arahan dengan cepat, anda boleh menggunakan:
Import subprocess # Output menulis ringkas = subprocess.run ('tarikh', shell = true, capture_output = true, text = true) .stdout.strip () Cetak ("Masa Semasa:", Output)
Contoh penggunaan biasa
Semak sama ada fail wujud:
hasil = subprocess.run (['test', '-f', 'config.txt'], capture_output = true) jika hasil.returncode == 0: Cetak ("Fail wujud")
Jalankan arahan Git:
hasil = subprocess.run (['git', 'rev-parse', '--abvrev-ref', 'kepala'], capture_output = true, text = true) Cetak ("Cawangan Semasa:", result.stdout.strip ())
Pada dasarnya kaedah biasa ini. Adalah disyorkan untuk menggunakan
subprocess.run()
setiap hari untuk mengelakkan menggunakanos.system()
atau modulcommands
yang tidak disengajakan.Atas ialah kandungan terperinci Contoh Perintah Python Run Shell. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

SetupaMaven/gradleprojectwithjax-rsdependencyiSejersey; 2.createarescresourceUsingAnnotationssuchas@pathand@get; 3.configuretheapplicationviaapplicationsubclassorweb.xml;

Maven adalah alat standard untuk pengurusan dan pembinaan projek Java. Jawapannya terletak pada hakikat bahawa ia menggunakan pom.xml untuk menyeragamkan struktur projek, pengurusan pergantungan, automasi kitaran hayat pembinaan dan sambungan pemalam; 1. Gunakan pom.xml untuk menentukan kumpulan, artifactid, versi dan kebergantungan; 2. Perintah teras utama seperti mvnclean, penyusun, ujian, pakej, memasang dan menggunakan; 3. Gunakan DependencyManagement dan Pengecualian untuk Menguruskan Versi Ketergantungan dan Konflik; 4. Mengatur aplikasi besar melalui struktur projek multi-modul dan diuruskan secara seragam oleh POM induk; 5.

Pertama, gunakan JavaScript untuk mendapatkan pilihan sistem pengguna dan tetapan tema yang disimpan di dalam negara, dan memulakan tema halaman; 1. Struktur HTML mengandungi butang untuk mencetuskan Topik Switching; 2. CSS menggunakan: Root untuk menentukan pembolehubah tema yang cerah, kelas mod-mode mentakrifkan pembolehubah tema gelap, dan menggunakan pembolehubah ini melalui VAR (); 3. JavaScript mengesan lebih suka skema-skema dan membaca LocalStorage untuk menentukan tema awal; 4. Tukar kelas mod gelap pada elemen HTML apabila mengklik butang, dan menjimatkan keadaan semasa ke LocalStorage; 5. Semua perubahan warna disertakan dengan animasi peralihan 0.3 saat untuk meningkatkan pengguna

@Property Decorator digunakan untuk menukar kaedah ke dalam sifat untuk melaksanakan bacaan, penetapan dan kawalan penghapusan sifat. 1. Penggunaan Asas: Tentukan atribut baca sahaja melalui @property, seperti kawasan yang dikira berdasarkan radius dan diakses secara langsung; 2. Penggunaan Lanjutan: gunakan @name.setter dan @name.deleter untuk melaksanakan pengesahan tugasan atribut dan operasi penghapusan; 3. Aplikasi Praktikal: Melaksanakan pengesahan data dalam setter, seperti BankAccount untuk memastikan bahawa baki tidak negatif; 4. Penamaan Spesifikasi: Pembolehubah dalaman adalah prefixed, nama kaedah harta selaras dengan atribut, dan kawalan akses bersatu digunakan untuk meningkatkan keselamatan kod dan penyelenggaraan.

Untuk menjana nilai hash menggunakan Java, ia boleh dilaksanakan melalui kelas MessageDigest. 1. Dapatkan contoh algoritma yang ditentukan, seperti MD5 atau SHA-256; 2. Panggil kaedah .Update () untuk lulus dalam data untuk disulitkan; 3. Panggil kaedah .digest () untuk mendapatkan pelbagai hash byte; 4. Tukar array byte ke dalam rentetan heksadesimal untuk membaca; Untuk input seperti fail besar, baca dalam ketulan dan panggilan .Update () beberapa kali; Adalah disyorkan untuk menggunakan SHA-256 dan bukannya MD5 atau SHA-1 untuk memastikan keselamatan.

Ya, menu drop-down CSS biasa boleh dilaksanakan melalui HTML dan CSS tulen tanpa JavaScript. 1. Gunakan UL dan Li bersarang untuk membina struktur menu; 2. Gunakan: Hover pseudo-Class untuk mengawal paparan dan menyembunyikan kandungan tarik-turun; 3. Tetapkan Kedudukan: Relatif untuk Ibu Bapa Li, dan submenu diletakkan menggunakan kedudukan: mutlak; 4. Submenu mungkir untuk memaparkan: Tiada, yang menjadi paparan: blok apabila melayang; 5. Multi-level pull-down boleh dicapai melalui bersarang, digabungkan dengan peralihan, dan menambah animasi pudar, dan disesuaikan dengan terminal mudah alih dengan pertanyaan media. Penyelesaian keseluruhannya mudah dan tidak memerlukan sokongan JavaScript, yang sesuai untuk besar

Gunakan DateTime.StrpTime () untuk menukar rentetan tarikh ke dalam objek DateTime. 1. Penggunaan Asas: Parse "2023-10-05" sebagai objek DateTime melalui "%y-%m-%d"; 2. Menyokong pelbagai format seperti "%m/%d/%y" untuk menghuraikan tarikh Amerika, "%d/%m/%y" untuk menghuraikan tarikh British, "%b%d,%y%i:%m%p" untuk menghuraikan masa dengan am/pm; 3. Gunakan dateUtil.parser.parse () untuk secara automatik menyimpulkan format yang tidak diketahui; 4. Gunakan .D
