我是 python 的新手,相信对此有一个简单的答案,但似乎无法弄清楚。有没有办法在这个程序的开头进行函数调用。如您所见,我正在运行代码,然后要求再次运行它,这就是它现在执行函数调用的地方。这按原样工作,但我想摆脱除 while 循环和函数之外的所有内容,以便清理代码。谢谢。
import subprocess
import re
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!')
elif 'STOPPED' in y:
print ('\n'+server_list[a]+' - '+service_list[i]+' - '+y.split(" ")[10])
def repeat():
#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')
while(True):
a = str(input("Do you want to query another service? y/n: "))
if 'y' in a:
subprocess.check_output(server_disconnect, universal_newlines=True)
print ("\n")
repeat()
elif 'n' in a:
subprocess.check_output(server_disconnect, universal_newlines=True)
break;
else:
print ('Enter y/n')