幾個python營運指令碼__python

來源:互聯網
上載者:User

這是我以前寫過的一個清除備份檔案的小程式,本來想用批處理來做,但批處理的文法又複雜有怪異,最終還是拿python寫了一個
因為我們的遊戲每隔一小時就會自動產生一個備份,這個程式的作用是跳過最新的7*24個備份,刪除其他的時間更長的。
#表示注釋

# -*- coding: cp936 -*-

import os  #os是python內建的一個擴充庫,用來進行跟系統相關的操作

skipNum = 24 * 7    #保留檔案夾的數目(小時 * 天)

print '\n*************清除時間超過 ' + str(skipNum /24) + ' 天的自動備份檔案**************\n\n'

backupDir = os.path.abspath(__file__) + '\\..\\..' + '\\servedatabase_autobackup'
for dir in os.listdir(backupDir):   #os.listdir(xxx)函數返回的是一個檔案清單
    if dir[-4:] == '.map':
        mapDir = backupDir + '\\' + dir
        print '正在清除備份目錄:' + os.path.abspath(mapDir)
        subDirs = os.listdir(mapDir) #擷取檔案清單
        subDirs.reverse()            #逆序
        i = 0
        for subDir in subDirs:
            i+=1
            if i > skipNum:
                print '正在清除備份: ' + subDir 
                os.system('rmdir ' + mapDir + '\\' + subDir + ' /s/q') #相當於執行控制台命令


因為十一假期期間伺服器程式沒有人負責看管,我們的伺服器程式出錯誤的會產生錯誤報表對話方塊,這個python的作用就是定時尋找這個錯誤對話方塊,並且關掉,然後重新啟動服務端。

# -*- coding: cp936 -*-
import win32api
import win32gui
import time
import os

print "監控進程運行中....."

#工作路徑
workDir = "D:/work/xxxxxxxxx/"

#要進行監控的程式
winList = []
winList.append(["xxx-xxxx伺服器","xxx_R.bat"])
winList.append(["yyy-yyyy伺服器","yyy_R.bat"])
winList.append(["zzz-zzzz伺服器","zzz_R.bat"])

while(1):
    #尋找"錯誤報表"視窗,並關掉
    w = win32gui.FindWindow(0,"錯誤報表")
    while(w != 0):
        win32api.SendMessage(w,16)
        w = win32gui.FindWindow(0,"錯誤報表")
        
    time.sleep(2)

    #尋找"python錯誤"視窗,並關掉
    w = win32gui.FindWindow(0,"python.exe")
    while(w != 0):
        win32api.SendMessage(w,16)
        w = win32gui.FindWindow(0,"python.exe")   
    
    time.sleep(2)
    
    #檢查進程是否存在,如果不存在則啟動進程
    for wl in winList:
        s = win32gui.FindWindow(0,wl[0])
        if s == 0:
            print str(time.localtime()) + "  啟動  " + wl[1]
            #寫日誌
            file_object = open(workDir +  'runLog.txt', 'w+')
            file_object.write(str(time.localtime()) + "  啟動  " + wl[1])
            file_object.close( )
            #啟動
            win32api.ShellExecute(0, "" , workDir + wl[1] , "" , workDir , True )
            time.sleep(5) #每啟動一個後的等待時間
    
    time.sleep(600)#每一輪迴圈等待時間


這個是用來寫簡單的2d遊戲的一個擴充庫 http://www.pygame.org/news.html
前幾天剛看了看,裡面有很多小例子可以看

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.