Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序开始时的Python函数调用_Python_Python 3.2_Function Call - Fatal编程技术网

程序开始时的Python函数调用

程序开始时的Python函数调用,python,python-3.2,function-call,Python,Python 3.2,Function Call,我是python新手,相信有一个简单的答案,但似乎无法找到答案。有没有办法在程序开始时进行函数调用。正如您所看到的,我正在运行代码,然后要求再次运行它,这就是它现在执行函数调用的地方。这可以按原样工作,但我希望除去while循环和函数之外的所有内容,以便清理代码。谢谢 这就是为什么: import subprocess import re def server_checker(): print ("This will print any service that is stopped

我是python新手,相信有一个简单的答案,但似乎无法找到答案。有没有办法在程序开始时进行函数调用。正如您所看到的,我正在运行代码,然后要求再次运行它,这就是它现在执行函数调用的地方。这可以按原样工作,但我希望除去while循环和函数之外的所有内容,以便清理代码。谢谢


这就是为什么:

import subprocess
import re

def server_checker():
    print ("This will print any service that is stopped or unknown \n")
    #servers
    server = str(input("Enter server to query(IP Address): "))
    server_list = server.split(",")
    server_count = len(server_list)

    #services
    service = str(input("Enter service to query: "))
    service_list = service.split(",")
    service_count = len(service_list)

    #server loop
    for a in range(len(server_list)):
        server_net_use = 'net use'+r' \\'+server_list[a]+r'\ipc$ /user:Administrator itv'
        server_disconnect = 'net use'+r' \\'+server_list[a]+r'\ipc$ /d'
        server_sc = r'\\'+server_list[a]
        subprocess.check_output(server_net_use, universal_newlines=True)

    #service loop
    for i in range(len(service_list)):
      x = subprocess.check_output(['sc', server_sc, 'query', service_list[i]], universal_newlines=True)
      y = re.sub('\s+',' ',x)

      if 'FAILED' in y:
        print ('\n'+server_list[a]+' - '+service_list[i]+' - Unknown Service!\n')
      elif 'STOPPED' in y:
        print ('\n'+server_list[a]+' - '+service_list[i]+' - '+y.split(" ")[10]+'\n')


if __name__ == "__main__":       
    server_checker()
    while(True):
        answer = str(input("Do you want to query another service? y/n: "))
        if answer.lower() in ["yes","y","letsgo"]:
          subprocess.check_output(server_disconnect, universal_newlines=True)
          print ("\n")
          server_checker()
        elif answer.lower() in ["no","n,","nowayhosay"]:
          subprocess.check_output(server_disconnect, universal_newlines=True)
          break;
        else:
          print ('Enter y/n')
这就是为什么:

import subprocess
import re

def server_checker():
    print ("This will print any service that is stopped or unknown \n")
    #servers
    server = str(input("Enter server to query(IP Address): "))
    server_list = server.split(",")
    server_count = len(server_list)

    #services
    service = str(input("Enter service to query: "))
    service_list = service.split(",")
    service_count = len(service_list)

    #server loop
    for a in range(len(server_list)):
        server_net_use = 'net use'+r' \\'+server_list[a]+r'\ipc$ /user:Administrator itv'
        server_disconnect = 'net use'+r' \\'+server_list[a]+r'\ipc$ /d'
        server_sc = r'\\'+server_list[a]
        subprocess.check_output(server_net_use, universal_newlines=True)

    #service loop
    for i in range(len(service_list)):
      x = subprocess.check_output(['sc', server_sc, 'query', service_list[i]], universal_newlines=True)
      y = re.sub('\s+',' ',x)

      if 'FAILED' in y:
        print ('\n'+server_list[a]+' - '+service_list[i]+' - Unknown Service!\n')
      elif 'STOPPED' in y:
        print ('\n'+server_list[a]+' - '+service_list[i]+' - '+y.split(" ")[10]+'\n')


if __name__ == "__main__":       
    server_checker()
    while(True):
        answer = str(input("Do you want to query another service? y/n: "))
        if answer.lower() in ["yes","y","letsgo"]:
          subprocess.check_output(server_disconnect, universal_newlines=True)
          print ("\n")
          server_checker()
        elif answer.lower() in ["no","n,","nowayhosay"]:
          subprocess.check_output(server_disconnect, universal_newlines=True)
          break;
        else:
          print ('Enter y/n')

其实很简单。只要尽快定义函数,然后在定义函数后立即调用它

def saysomething(say):
 print say
saysomething("Hello, World!")
如果一切顺利,您应该获得:

Hello, World!

如果没有,检查错误。

这其实很容易。只要尽快定义函数,然后在定义函数后立即调用它

def saysomething(say):
 print say
saysomething("Hello, World!")
如果一切顺利,您应该获得:

Hello, World!

如果没有,请检查错误。

这里似乎仍然有大量重复代码。我建议,
repeat()
函数是不必要的,可以省略。此外,在我看来,
while
循环不应该在
service\u checker()
中(它当前递归调用
service\u checker()
),而应该在文件末尾的主程序中。fair point。我想我回答这个直接的问题时被冲昏头脑了,稍后我会整理代码,但我的主要目的是回答这个问题并给出如何正确执行的想法,而不是重写80行代码。@Simon你是100%正确的,甚至没有正确地看代码。谢谢@Noelkd的帮助,我没有注意到
if\uuuuu name\uuuuu==“\uuuuu main\uuuuu”:
命令。这在将来也会很有帮助,并且节省了很多代码行。很好@蒂姆:没问题,我的朋友。如果这是正确的答案,你能接受吗?我很确定,如果代码中没有
的话,它也能正常工作。如果uuuu name_uuuuu==“uuuuuu main_uuuuu”:
位,您只需要调用该方法,然后进入循环直到退出。祝你将来好运!这里似乎仍然有很多重复的代码。我建议,
repeat()
函数是不必要的,可以省略。此外,在我看来,
while
循环不应该在
service\u checker()
中(它当前递归调用
service\u checker()
),而应该在文件末尾的主程序中。fair point。我想我回答这个直接的问题时被冲昏头脑了,稍后我会整理代码,但我的主要目的是回答这个问题并给出如何正确执行的想法,而不是重写80行代码。@Simon你是100%正确的,甚至没有正确地看代码。谢谢@Noelkd的帮助,我没有注意到
if\uuuuu name\uuuuu==“\uuuuu main\uuuuu”:
命令。这在将来也会很有帮助,并且节省了很多代码行。很好@蒂姆:没问题,我的朋友。如果这是正确的答案,你能接受吗?我很确定,如果代码中没有
的话,它也能正常工作。如果uuuu name_uuuuu==“uuuuuu main_uuuuu”:
位,您只需要调用该方法,然后进入循环直到退出。祝你将来好运!