python - 将Python输出整齐地写入txt文件中?

标签 python file

我正在尝试创建一个程序,列出 Windows 计算机上所有正在运行的服务并将其保存到 txt 文件中。我让它工作了,但它没有像我在 Python shell 中的输出那样逐行列出。另外,还有我不想要的添加括号。请参阅下面的输出与 txt 文件屏幕截图。另外,我的代码如下。

Output vs txt file

到目前为止我的代码:

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/

相关文章:

python - 无法在 centos 7 上安装 psycopg2

python - 在 Django 模型表单中覆盖 clean() 方法时返回 cleaned_data

python - 在带有 os.system 的 bash 命令中使用 Python 变量

python - 如何强制 Y 轴只使用整数

python : setting colour limits for basemap's pcolormesh

android - 使用 Intent 打开下载的文件

java - 我想创建一个类来创建文件,并使用主类来检查该文件是否已创建,但我的代码失败。 ( java )

c++ - 如何正确初始化 std::set<std::string>?

file - 如何打开 matlab p 代码文件

git - 源码树Unity项目Ghost文件