有没有办法在 os.system() 中连接 python 变量?
Is there a way to concatenate python variables in os.system()?
我正在尝试将 python 变量连接到 os.system,该命令似乎可以执行,但它没有正确获取分配的值。
我试过同时使用 os.system 和子进程,但 none 都有效。这是我的一些尝试。
interface = os.popen("netstat -i | awk ' ~ /^w/ {print }'")
os.system("iw dev %s station dump" % (interface))
.
interface = os.popen("netstat -i | awk ' ~ /^w/ {print }'")
os.system("iw dev" +interface+ "station dump")
.
p1 = subprocess.Popen(["netstat", "-i"], stdout=subprocess.PIPE)
p2 = subprocess.Popen(["awk", ' ~ /^w/ {print }'], stdin=p1.stdout,
stdout=subprocess.PIPE)
displayInterface = p2.communicate()[0].decode('ascii')
retrieveMac = subprocess.Popen(["iw", "dev", displayInterface, "station", "dump"])
这一行:
displayInterface = p2.communicate()[0].decode('ascii')
displayInterface
产生一个带有尾随换行符的字符串。我不知道你是否需要 decode()
,但你需要 strip 换行符。
displayInterface = p2.communicate()[0].rstrip()
如有必要,您可以在 rstrip()
的参数中指定要去除的字符。
我正在尝试将 python 变量连接到 os.system,该命令似乎可以执行,但它没有正确获取分配的值。
我试过同时使用 os.system 和子进程,但 none 都有效。这是我的一些尝试。
interface = os.popen("netstat -i | awk ' ~ /^w/ {print }'")
os.system("iw dev %s station dump" % (interface))
.
interface = os.popen("netstat -i | awk ' ~ /^w/ {print }'")
os.system("iw dev" +interface+ "station dump")
.
p1 = subprocess.Popen(["netstat", "-i"], stdout=subprocess.PIPE)
p2 = subprocess.Popen(["awk", ' ~ /^w/ {print }'], stdin=p1.stdout,
stdout=subprocess.PIPE)
displayInterface = p2.communicate()[0].decode('ascii')
retrieveMac = subprocess.Popen(["iw", "dev", displayInterface, "station", "dump"])
这一行:
displayInterface = p2.communicate()[0].decode('ascii')
displayInterface
产生一个带有尾随换行符的字符串。我不知道你是否需要 decode()
,但你需要 strip 换行符。
displayInterface = p2.communicate()[0].rstrip()
如有必要,您可以在 rstrip()
的参数中指定要去除的字符。