在Python中,是否有可能從一個字串變數中只洗掉單行,而不做兩塊的連接?我正在洗掉cachedLength行。
input_columns = f'''
<inputColumn
refId="PackageDFTDST.Inputs[DST Input].Columns[{tbl}] "
cachedDataType="{dt_type}"
cachedName="{tbl}"
cachedLength="{dt_lngh}"
cachedPrecision="{dt_prc}"
cachedScale="{dt_scl}"
externalMetadataColumnId="PackageDFTDST.Inputs[DST Input].ExternalColumns[{tbl}] "
lineageId="PackageDFTSRC.Outputs[SRC Output].Columns[{tbl}] " />
''
正在進行的作業:
i = input_columns.split("
"/span>)[4]
print(input_columns.replace(i, "")
uj5u.com熱心網友回復:
你可以使用re模塊替換這一行:
re.sub(r's*cachedLength=".*"'/span>, ''/span>, input_columns)
但是正如評論中提到的,從技術上講,Python 將重新創建字串,因為它是一個不可變的型別。
uj5u.com熱心網友回復:
不完全是回答這個問題,但是如果修改xml是你所追求的,你可以使用一個包來做這個。例如,使用lxml:
xml = " "
<inputColumn
refId="PackageDFTDST.Inputs[DST Input].Columns[{tbl}]"
cachedDataType="{dt_type}"
cachedName="{tbl}"
cachedLength="{dt_lngh}"
cachedPrecision="{dt_prc}"
cachedScale="{dt_scl}"
externalMetadataColumnId="PackageDFTDST.Inputs[DST Input].ExternalColumns[{tbl}]"
lineageId="PackageDFTSRC.Outputs[SRC Output].Columns[{tbl}]" />
""
e = etree.fromstring(xml)
del e.attrib["cachedLength"/span>]
print(etree.tostring(e, pretty_print=True, encoding="unicode")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/331585.html
標籤:
