我撰寫了一個簡單的腳本來檢查子行程模塊,并在 Windows 和 Linux 上對其進行了測驗。
該腳本在 Windows 上運行良好,但在 Linux 上不起作用。
使用的 Python 解釋器都是版本 3。
import subprocess
host = input("Enter a host to ping: ")
p1 = subprocess.Popen(["ping", "-n", "2", host], shell=True, universal_newlines=True, stdout=subprocess.PIPE)
output = p1.communicate()[0]
print(output)
Windows 上的輸出:
Enter a host to ping: google.com
Pinging google.com [142.250.183.238] with 32 bytes of data:
Reply from 142.250.183.238: bytes=32 time=17ms TTL=120
Reply from 142.250.183.238: bytes=32 time=16ms TTL=120
Ping statistics for 142.250.183.238:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 16ms, Maximum = 17ms, Average = 16ms
在 Linux 上:
Enter a host to ping: google.com
ping: usage error: Destination address required
在 Linux 上運行時有什么區別?
uj5u.com熱心網友回復:
Windows 上的 Ping 命令類似于,ping -n 2 google.com但在 linux 中則是ping -c 2 google.com. 嘗試使用if os.name() == 'posix'for linux & if os.name() == 'nt'for windows 并撰寫兩個命令,每個作業系統一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342859.html
下一篇:VisualStudio2019中的問題組裝,簡單的“HelloWorld”legacy_stdio_definitions.lib
