2014-10-03 65 views
2

我有一個win32應用程序通過RDP訪問用戶訪問。 每個用戶都有他/她自己的user_app.ini文件。如何在部分名稱中區分大小寫?

當我在RDP服務器上升級應用程序時,有時需要在每個用戶的user_app.ini文件中創建/修改條目。我編寫了一個Python腳本來處理使用upgrade.ini文件更新所有user_app.ini文件的作業,使用ConfigParser模塊。

我的問題是,我的部分名字應被視爲不區分大小寫,但ConfigParser是關於部分(雖然可能情況下鈍感關於使用optionxform()選項

有人可以幫助我區分大小寫?謝謝

回答

0

有一個SECTCRE屬性,您可以覆蓋。這應該定義一個與部分名稱匹配的正則表達式。

相反,可以通過具有match方法,該方法採用一個字符串,並返回具有group方法,該方法接受的字符串作爲'header'參數的對象的任何對象一個正則表達式的。

例如:

class FakeRe: 
    def __init__(self, regex): 
     self.regex = regex 
    def match(self, text): 
     m = self.regex.match(text) 
     if m: 
      return FakeMatch(m) 
     return None 

class FakeMatch: 
    def __init__(self, match): 
     self.match = match 
    def group(self, name): 
     return self.match.group(name).lower() 

創建解析器時,你可以再設置該屬性:

config = ConfigParser() 
config.SECTCRE = FakeRe(re.compile(r'\[\s*(?P<header>some regex here)\s*\]') 

這個解析器應該考慮所有部分的名稱爲小寫。

根據您的確切需要,您可能需要調整一下代碼。

相關問題