Saya menggunakan 2 skrip terpisah, Scale1.py
dan Scale2.py
. Untuk menjalankannya saya masukkan sudo python Scale1.py
atau sudo python Scale2.py
dari baris perintah terminal. Saya ingin memiliki baris dalam Scale2.py
skrip di mana jika saya menekan tombol, program akan rusak dan berjalan Scale1.py
. Sesuatu seperti ini, yang tidak berhasil.
if GPIO.input(23) == False:
break(sudo python Scale1.py)
os.system()
telah dikurangi demisubprocess
, lihat stackoverflow.com/a/4256153/4212158Secara umum, gunakan modul subproses
untuk panggilan baris perintah.
Contoh memproses hasil panggilan subproses;
Subprocess menggantikan beberapa modul dan fungsi yang lebih lama, seperti os.system dan os.spawn . Itu melakukan pekerjaan yang baik dalam membersihkan argumen, sehingga melindungi Anda dari injeksi shell .
https://docs.python.org/2/library/subprocess.html
Tentu saja untuk menjalankan skrip python kedua tidak perlu untuk panggilan CLI, Anda dapat mengimpornya.
sumber
subprocess
mungkin lebih baik dalam kasus saya juga.Anda dapat menggunakan sudo seperti yang disarankan harry sib, tetapi Anda harus menambahkan pengguna yang menjalankan skrip pertama ke file sudoers .
Cara terbaik untuk menjalankan skrip python dari skrip python lain adalah dengan mengimpornya. Anda harus memiliki logika skrip Anda dalam metode di skrip kedua:
sumber
cleanest
jawabannya.