python作为系统服务时获取不了系统变量

Python012

python作为系统服务时获取不了系统变量,第1张

当Python作为系统服务时,可能无法获取系统变量。这是因为服务程序在启动时,并没有像一般程序一样把系统变量加载到内存里,所以Python也无法使用它们。如果要解决此问题,可以尝试在服务启动前显式地加载系统变量,然后才启动Python服务。

import datetime as dt

now_time = str(dt.datetime.now().strftime('%F %T'))

with open('xxxx.txt','w') as t:

t.write(now_time)

缩进你调一下,这不好确定缩进“xxxx.txt”是你的文件,需要跟你的Python代码文件在一个文件夹,否则前面要写绝对路径。%f表示年月日,%t表示后面的时间。

你好:

你可以使用dir()获取wmi的函数信息;

import wmi 

import os 

import sys 

import platform 

import time 

 

def sys_version():  

    c = wmi.WMI () 

    #获取操作系统版本 

    for sys in c.Win32_OperatingSystem(): 

        print "Version:%s" % sys.Caption.encode("UTF8"),"Vernum:%s" % sys.BuildNumber 

        print  sys.OSArchitecture.encode("UTF8")#系统是32位还是64位的 

        print sys.NumberOfProcesses #当前系统运行的进程总数

 

def cpu_mem(): 

    c = wmi.WMI ()        

    #CPU类型和内存 

    for processor in c.Win32_Processor(): 

        #print "Processor ID: %s" % processor.DeviceID 

        print "Process Name: %s" % processor.Name.strip() 

    for Memory in c.Win32_PhysicalMemory(): 

        print "Memory Capacity: %.fMB" %(int(Memory.Capacity)/1048576) 

 

def cpu_use(): 

    #5s取一次CPU的使用率 

    c = wmi.WMI() 

    while True: 

        for cpu in c.Win32_Processor(): 

            timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime()) 

            print '%s | Utilization: %s: %d %%' % (timestamp, cpu.DeviceID, cpu.LoadPercentage) 

            time.sleep(5)    

              

def disk(): 

    c = wmi.WMI ()    

    #获取硬盘分区 

    for physical_disk in c.Win32_DiskDrive (): 

        for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"): 

            for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"): 

                print physical_disk.Caption.encode("UTF8"), partition.Caption.encode("UTF8"), logical_disk.Caption 

    

    #获取硬盘使用百分情况 

    for disk in c.Win32_LogicalDisk (DriveType=3): 

        print disk.Caption, "%0.2f%% free" % (100.0 * long (disk.FreeSpace) / long (disk.Size)) 

 

def network(): 

    c = wmi.WMI ()    

    #获取MAC和IP地址 

    for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1): 

        print "MAC: %s" % interface.MACAddress 

    for ip_address in interface.IPAddress: 

        print "ip_add: %s" % ip_address 

    print 

    

    #获取自启动程序的位置 

    for s in c.Win32_StartupCommand (): 

        print "[%s] %s <%s>" % (s.Location.encode("UTF8"), s.Caption.encode("UTF8"), s.Command.encode("UTF8"))  

    

    

    #获取当前运行的进程 

    for process in c.Win32_Process (): 

        print process.ProcessId, process.Name 

 

def main(): 

    sys_version() 

    #cpu_mem() 

    #disk() 

    #network() 

    #cpu_use() 

 

if __name__ == '__main__': 

    main() 

    print platform.system() 

    print platform.release() 

    print platform.version() 

    print platform.platform() 

    print platform.machine()