ฉันต้องการกำหนดเอาท์พุทของคำสั่งที่ฉันเรียกใช้โดยใช้os.system
ตัวแปรและป้องกันไม่ให้มันถูกส่งออกไปยังหน้าจอ แต่ในรหัสด้านล่างผลลัพธ์จะถูกส่งไปยังหน้าจอและค่าที่พิมพ์สำหรับvar
คือ 0 ซึ่งฉันเดาว่าหมายถึงคำสั่งรันได้สำเร็จหรือไม่ มีวิธีใดที่จะกำหนดเอาต์พุตคำสั่งให้กับตัวแปรและหยุดมันจากการแสดงบนหน้าจอหรือไม่?
var = os.system("cat /etc/services")
print var #Prints 0
os.system
(หรือos.popen
ตามคำตอบที่คุณยอมรับ): ใช้subprocess.Popen
มันเป็นวิธีที่ดีกว่า!
subprocess.Popen
- เพียงเพิ่มshell=True
!
shell=True
เป็นความคิดที่แย่มาก ๆ (โดยทั่วไป)! คุณจะต้องมีมากแน่ใจว่าสิ่งที่คุณกำลังดำเนิน :)