Saya membaca ini di suatu tempat beberapa waktu yang lalu tetapi sepertinya tidak dapat menemukannya. Saya mencoba menemukan perintah yang akan menjalankan perintah di terminal dan kemudian menampilkan hasilnya.
Contoh: scriptnya adalah:
command 'ls -l'
Ini akan keluar hasil dari menjalankan perintah itu di terminal
os.system("nslookup gmail.com")
hanya mengembalikan baris terakhir0
, tetapi saya ingin mendapatkan respons penuh.Saya lebih suka menggunakan modul subproses:
Alasannya adalah jika Anda ingin melewatkan beberapa variabel dalam skrip ini memberikan cara yang sangat mudah misalnya mengambil bagian kode berikut
sumber
call(["eog", "1breeproposal.png", "-f"])
Sebenarnya setiap pertanyaan tentang subproses akan menjadi bacaan yang bagus
sumber
Anda juga harus melihat ke commands.getstatusoutput
Ini mengembalikan tupel dengan panjang 2 .. Yang pertama adalah bilangan bulat kembali (0 - ketika perintah berhasil) kedua adalah seluruh output seperti yang akan ditampilkan di terminal.
Untuk ls
sumber
Ini seharusnya berhasil. Saya tidak tahu cara mencetak output ke shell python.
sumber
The os.popen () cukup hanya untuk digunakan, tetapi telah ditinggalkan sejak Python 2.6. Anda harus menggunakan modul subprocess sebagai gantinya.
Baca di sini: membaca os.popen (perintah) menjadi string
sumber
Jupyter
Di notebook jupyter Anda dapat menggunakan fungsi ajaib
!
ipython
Untuk menjalankan ini sebagai
.py
skrip, Anda perlu menggunakanipython
jalankan skrip
sumber
Anda dapat mengimpor modul 'os' dan menggunakannya seperti ini:
sumber
untuk menggunakan subproses python3
sumber