我有一個INI檔案,其中的章節在[ ]內提及,變數以鍵=值的方式出現。 在該檔案中,我有一個名為 [FILES] 的部分,其中只提到了一些檔案(擴展名為 .ini)的路徑,而沒有任何鍵值對。
使用 Python 的 configpaser 模塊,我無法決議它,因為 [FILES] 部分。 因此,我試圖從檔案中洗掉這一部分,用空白代替它。
ini檔案看起來如下,在[FILES]下可能有也可能沒有定義的部分
。[ABC] 。
p1 = 2
p2 = 3。
[DEF]。
q1= 4 [DEF]
q2=佇列
[FILES]
$PWD/.../log/inc1-ww.ini
inc2.ini
/home/user/inputs/inc_new.ini
[PQR]
x= xyz
y = 2
我正在嘗試下面的代碼,但是在[FILES]后面定義的部分也出現了問題,如果能幫助我糾正這個詞組并從檔案中洗掉它,將會有很大的幫助:
import re
txt = open('my.ini'/span>, "r")
data = txt.read()
txt.close()
regex = re.compile(r'^([FILES])[
]([$-_a-zA-Z0-9/.
] )', re.MULTILINE)
匹配 = []
for m in regex.finditer(data)。
matches.append(m.group())
預先感謝!
uj5u.com熱心網友回復:
這真的不值得用regexp來做;如果你不能使用ConfigParser,即使有allow_no_value,閱讀檔案并忽略FILES部分的所有行:
import io
data = io.StringIO(""
[ABC]
p1 = 2
p2 = 3
[DEF]
q1= 4
q2 = 排隊
[FILES]
$PWD/.../log/inc1-ww.ini
inc2.ini
/home/user/inputs/inc_new.ini
[PQR]
x= xyz
y = 2
"".strip()
)
current_section = None
for line in data:
line = line.rstrip()
if line.startinwith("["):
current_section = line.strip(" []")
if current_section != "FILES":
print(line)
這就輸出了
[ABC] 。
p1 = 2
p2 = 3。
[DEF]。
q1= 4 [DEF]
q2=佇列
[PQR]
x= xyz
y=2
(你可以寫到一個檔案或追加到一個串列,而不是print()行。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/323165.html
標籤:
