在python中调用模块和传回数据

在python中调用模块和传回数据,python,arrays,python-2.7,module,ironpython,Python,Arrays,Python 2.7,Module,Ironpython,我遇到了另一个问题,当我调用一个包含端口扫描程序的模块,该模块返回一个打开的端口数组,而不是返回任何内容时,应用程序将关闭。我尝试过使用import GetPorts以及从GetPorts import Ports导入,甚至使用execfile只执行它,但无论它如何调用,应用程序都会关闭。VisualStudio没有给我任何反馈,说明为什么它在输出帧中仅返回1(0x1)之后关闭。下面是我用来调用GetPorts模块以及在出现错误时调用该模块的代码 当前主应用程序: import wpf impo

我遇到了另一个问题,当我调用一个包含端口扫描程序的模块,该模块返回一个打开的端口数组,而不是返回任何内容时,应用程序将关闭。我尝试过使用
import GetPorts
以及从GetPorts import Ports导入
,甚至使用
execfile
只执行它,但无论它如何调用,应用程序都会关闭。VisualStudio没有给我任何反馈,说明为什么它在输出帧中仅返回1(0x1)之后关闭。下面是我用来调用GetPorts模块以及在出现错误时调用该模块的代码

当前主应用程序:

import wpf
import sqlite3
from GetPorts import Ports

    #declare array to receive open ports
    OpenPorts = []

    self.TB_Top_Results.Text = self.TB_Top_Results.Text + "Before Port Scan" 
    #does not appear when run despite coming before what crashes the app

    #call module to scan for and return open ports
    OpenPorts = Ports.func(LocalIP)

    #display open ports in results text box
    self.TB_Top_Results.Text = OpenPorts
正在导入GetPorts方法:

import GetPorts
...
...
...
OpenPorts = GetPorts.Ports.func(LocalIP)
execfile方法,我将IP硬编码到GetPorts模块中:

import GetPorts
...
...
...
OpenPorts = execfile(GetPorts.py)
获取端口:

import socket
import subprocess
import sys
from datetime import datetime

class Ports:
    def func(IPadd):

        #Create connection
        remoteServerIP = socket.gethostbyname(IPadd)        

        # Check what time the scan started
        t1 = datetime.now()

        #Create Array to store open ports
        OpenPorts = []

        #Loop through port numbers
        try:
            for port in range(5000,5100):  
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                result = sock.connect_ex((remoteServerIP, port))
                if result == 0:
                    OpenPorts.append(port)
                sock.close()


        except KeyboardInterrupt:
            print "You pressed Ctrl+C"
            sys.exit()

        except socket.gaierror:
            print 'Hostname could not be resolved. Exiting'
            sys.exit()

        except socket.error:
            print "Couldn't connect to server"
            sys.exit()

        return OpenPorts

在exec_文件中,它不会执行任何操作,因为您没有调用
func
。至于其他的,是打印空数组吗?或者LocalIP是否在该范围内有一个打开的端口?如果该范围内的某个端口实际处于打开状态,则始终可以在try语句中尝试调试打印以打印端口。因此,我尝试在它调用函数打印到“结果”文本框之前插入一行,并且它永远不会执行…只要调用该函数。我试着把它们放在函数中,看看它是否正在处理,它们也不会执行。据我所知,它完全终止了应用程序,因为Visual Studio没有错误,调试器也没有发现任何东西。让我们暂时离开VS代码。它不工作或在VSCode中显示错误的原因可能有很多。你能用在终端上运行脚本的输出来更新你的问题吗?不幸的是,它不是Ironpython WPF应用程序。如果我尝试,它会说找不到XAML文件。