我想編輯python腳本中的Apache2配置文件。我想向ServerAlias指令添加或刪除域名,以便腳本需要編輯特定文件並搜索以「ServerAlias」開頭的行並向該行附加或刪除特定的域名。在Python中的特定行添加或刪除文件中的某些文本
我不知道該怎麼做,任何暗示在文檔將不勝感激,我也在考慮使用一個子進程來使用一些bash工具,如sed。工具
我想編輯python腳本中的Apache2配置文件。我想向ServerAlias指令添加或刪除域名,以便腳本需要編輯特定文件並搜索以「ServerAlias」開頭的行並向該行附加或刪除特定的域名。在Python中的特定行添加或刪除文件中的某些文本
我不知道該怎麼做,任何暗示在文檔將不勝感激,我也在考慮使用一個子進程來使用一些bash工具,如sed。工具
夫婦,你需要爲你的交易
+
(字符串concatination)可以使用fileinput.input與就地模式:
import fileinput
for line in fileinput.input("mifile", inplace=True):
if line.startswith("ServerAlias"):
line = doherewhatyouwant(line)
print line,
從文檔:
如果關鍵字參數就地= True時,傳遞給fileinput.input()或 到的FileInput構造函數中,文件被移動到備份文件並且標準輸出被定向到輸入文件(如果一個名稱與備份文件名稱相同的文件已經存在,它將被無提示地替換)。 這使得可以編寫一個過濾器來重寫其輸入文件 。如果給出備份參數(通常爲 backup ='。'),則它指定備份文件的擴展名,並且備份文件保留在附近;默認情況下,擴展名爲 '.bak',並在輸出文件關閉時被刪除。當讀取標準輸入時,原位 過濾被禁用。
爲什麼它需要是Python? – 2011-12-31 07:41:32
因爲它是Django項目的一部分,所以在整個項目中使用相同的語言會很好。並且因爲我喜歡Python :) – Bastian 2011-12-31 09:32:30
[在Python中搜索並替換文件中的一行]可能的重複(http://stackoverflow.com/questions/39086/search-and-replace-a-line-in-a- python) – joaquin 2011-12-31 10:06:34