我正在尝试创建一个程序,列出 Windows 计算机上所有正在运行的服务并将其保存到 txt 文件中。我让它工作了,但它没有像我在 Python shell 中的输出那样逐行列出。另外,还有我不想要的添加括号。请参阅下面的输出与 txt 文件屏幕截图。另外,我的代码如下。
到目前为止我的代码:
import win32con
import win32service
#Define ListServices class
def ListServices():
resume = 0
accessSCM = win32con.GENERIC_READ
accessSrv = win32service.SC_MANAGER_ALL_ACCESS
#Open Service Control Manager
hscm = win32service.OpenSCManager(None, None, accessSCM)
#Enumerate Service Control Manager DB
typeFilter = win32service.SERVICE_WIN32
stateFilter = win32service.SERVICE_ACTIVE
statuses = win32service.EnumServicesStatus(hscm, typeFilter, stateFilter)
for (short_name, desc, status) in statuses:
#Save output to txt file
f=open('MyServices.txt', 'w')
f.write(str(statuses))
f.close()
#Print output and append 'Running' at the end of each line
print(desc, status, '----------> Running')
ListServices();
最佳答案
write
不会像 print
那样附加换行符,因此您应该自己处理它。另请注意,没有理由在每次迭代时打开和关闭文件。只要您需要,就将其保持打开状态:
with open('MyServices.txt', 'w') as f:
for (short_name, desc, status) in statuses:
f.write(str(statuses))
f.write(os.linesep)
#Print output and append 'Running' at the end of each line
print(desc, status, '----------> Running')
关于python - 将Python输出整齐地写入txt文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52346653/