分類
在Windows作業系統中存在兩個INI檔案:
SYSTEM.INI和
WIN.INI。在純文本處理器或DOS編輯器中打開INI檔案就有可能知道這些檔案大概要做些什麼。這些檔案中包括對滑鼠、鍵盤、外圍設備、顯示器顏色、密碼等的變數參數的設定聲明。在Windows 95/98/NT及之後的版本中,大部分的設定是通過對註冊表的修改實現的,而不是通過使用INI檔案。某些程式包含自身的INI檔案。這些檔案的內容的修改通常是通過該程式的用戶界面來更改程式的特徵,並不是通過編輯檔案本身來進行的。
檔案格式
節(section)
節用方括弧括起來,單獨占一行,例如:
[section]
鍵(key)
鍵(key)又名屬性(property),單獨占一行用等號連線鍵名和鍵值,例如:
name=value
注釋(comment)
注釋使用英文分號(;)開頭,單獨占一行。在分號後面的文字,直到該行結尾都全部為注釋,例如:
; comment text
作用
.ini , .
inc之類的檔案,一般是放一些
常量或資料庫連結語句等,再在需要的頁面包含進去,和直接命為
asp 是沒什麼區別的。
但為了安全性,最好不要用這些後綴名,因為知道檔案名稱時,在瀏覽器里輸入該檔案的地址時,可看到所有內容的。
在Windows系統中,INI檔案是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。該檔案主要存放用戶所做的選擇以及系統的各種參數。用戶可以通過修改INI檔案,來改變應用程式和系統的很多配置。但自從Windows 95的推出,在Windows系統中引入了註冊表的概念,INI檔案在Windows系統的地位就開始不斷下滑,這是因為註冊表的獨特優點,使應用程式和系統都把許多參數和初始化信息放進了註冊表中。但在某些場合,INI檔案還擁有其不可替代的地位。
.ini 檔案是windows的系統配置檔案,統管windows的各項配置,一般用戶就用windows提供的各項圖形化管理界面就可實現相同的配置了,但在某些情況,還是要直接編輯.ini才方便,一般只有很熟悉windows才能去直接編輯。開始時用於WIN3.1下面,WIN95用註冊表代替,[]及後面的內容表示一個節,相當於註冊表中的鍵。
除了windows現在很多windows下面的套用軟體也有.ini檔案,用來配置套用軟體以實現不同用戶的要求。一般不用直接編輯這些.ini檔案,應用程式的
圖形界面即可操作以實現相同的功能。
檔案讀寫
文本編輯
由於INI檔案是純文本格式,所以可以用任何純文本編輯器來進行編輯其內容。
Windows API 函式讀寫
讀取
DWORD WINAPI GetPrivateProfileString( _In_ LPCTSTR lpAppName, _In_ LPCTSTR lpKeyName, _In_ LPCTSTR lpDefault, _Out_ LPTSTR lpReturnedString, _In_ DWORD nSize, _In_ LPCTSTR lpFileName);
參數說明:
lpAppName (輸入參數)節名
lpKeyName (輸入參數)鍵名
lpDefault (輸入參數)默認值。INI讀取失敗時,得到這個值
lpReturnedString (輸出參數)讀取到的鍵值
nSize (輸入參數)lpReturnedString的緩衝區大小
lpFileName (輸入參數)INI檔案的檔案路徑
返回值:
讀取到的字元數,不包括末尾的'\0'字元或L'\0'字元。
寫入
BOOL WINAPI WritePrivateProfileString( _In_ LPCTSTR lpAppName, _In_ LPCTSTR lpKeyName, _In_ LPCTSTR lpString, _In_ LPCTSTR lpFileName);
參數說明:
lpAppName (輸入參數)節名
lpKeyName (輸入參數)鍵名
lpString (輸入參數)需要寫入的鍵值
lpFileName (輸入參數)INI檔案的檔案路徑
返回值:
寫入成功返回非零值,寫入失敗返回零值,可以用GetLastError函式得到錯誤原因。
Python的ConfigParser類
#!/usr/bin/env python# -*- coding: UTF-8 -*-import ConfigParseriniparser = ConfigParser.ConfigParser() # 初始化一個INI讀寫類的對象 iniparser.read('filename.ini') # 讀取INI檔案key_value = iniparser.get('section_name_1', 'key_name') # 解析INI檔案print key_value # 生成INI檔案iniparser.add_section('section_name_2')iniparser.set('section_name_2', 'key_name', 'key_value')with open('filename.ini', 'w') as inifile: iniparser.write(inifile) # 寫入INI檔案