检查某个插槽是否忙或n

2024-10-01 11:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python中套接字编程的新手。我用Python3.7编写了以下代码:

trialSocketList.py

import subprocess
import sys

HOST = sys.argv[1]
PORT = sys.argv[2]

command = "tnc " + HOST + " -PORT "
print(command)
subprocess.call(command + PORT)

我正在通过以下窗口命令:

^{pr2}$

但我在执行上述代码时出现以下错误:

tnc 127.0.0.1 -PORT
Traceback (most recent call last):
  File "trialSocketList.py", line 14, in <module>
    subprocess.call(command + PORT)
  File "C:\Python37\lib\subprocess.py", line 323, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Python37\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:\Python37\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

当我在同一代码中尝试netstat -an而不是命令tnc 127.0.0.1 -PORT时,代码的功能非常完美。在阅读了thisAPI之后,我写了上面几行代码。在

*如果我直接在Windows命令中点击它,我可以运行tnc命令。

我是不是少了点什么?或者还有其他更好的方法吗?如果是这样,那么请帮助我理解这里的问题。在

提前谢谢。在


Tags: 代码inpy命令portlibsysline
3条回答

tncPowerShell command。您需要像这样使用PowerShell显式运行它:

import subprocess
import sys

HOST = "127.0.0.1"
PORT = 445
command = "tnc " + HOST + " -PORT " + str(PORT)
print(command)
subprocess.call(["powershell.exe",command],stdout=sys.stdout)

输出:

^{pr2}$

尝试用shell=True调用Popen。下面是代码的外观:

import subprocess
import sys

HOST = sys.argv[1]
PORT = sys.argv[2]

command = "tnc " + HOST + " -PORT "
print(command)
process = subprocess.Popen(command, stdout=tempFile, shell=True)

Here是列出的问题。在

这里的问题是python脚本找不到tnc程序。或者根本没有安装程序,或者-如果安装了-它不在PATH变量中。在

相关问题 更多 >