Python Windows服务的工作目录是什么?

| 我已经使用pywin32成功创建了Python Windows服务。在测试我的应用程序时,我尝试将其打印(没有按我预期的那样工作),并且还将其写入文件。它能够写入文件,但该文件最终位于python库site-packages文件夹中。这似乎是工作目录所在的位置,尽管我不确定为什么?我想知道指定工作目录应该是什么的最佳方法。 我可以使用完整路径名打开文件,还是可以使用os.cwd?最佳做法是什么? 这是组成Windows服务的两个文件。
import os
import sys
import win32service
import win32serviceutil
from twisted.internet import reactor
import xpress


class XPressService(win32serviceutil.ServiceFramework):

    _svc_name_ = \'XPress\'
    _svc_display_name_ = \'XPress Longer Name\'

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        reactor.callFromThread(reactor.stop)

    def SvcDoRun(self):
        xpress.main()
        reactor.run(installSignalHandlers=False)


if __name__ == \"__main__\":
    win32serviceutil.HandleCommandLine(XPressService)
下面是上述脚本导入的\“ xpress.py \”。
import datetime

def main():
    with open(\'times\', \'a\') as f:
        print str(datetime.datetime.now())
        f.write(str(datetime.datetime.now()))

if __name__ == \'__main__\':
    main()
    
已邀请:
它们都起作用,这就是您的需求。由于各种原因,最好使用文件名的绝对路径,这样您就不必担心应用程序在哪里运行,您只需知道输出在哪里(哪个是最重要的)。在* nix中,当应用程序没有指定的工作目录时,它们通常在\'/ \'中工作。如果您确实选择在另一个目录
os.chdir(newDir)
中工作,请在致电
win32serviceutil.HandleCommandLine
之前执行此操作 我不知道Windows的默认设置,但您可能在站点软件包中的库目录中钉了它。     

要回复问题请先登录注册