在Python中拆分分号分隔的字符串

时间:2011-08-05 20:26:40

标签: python string split

我想拆分一个以分号分隔的字符串,以便我可以使用Python存储每个单独的字符串,以用作XML标记之间的文本。字符串值如下所示:

08-26-2009;08-27-2009;08-29-2009

它们只是存储为字符串值的日期

我想遍历每个值,存储到变量并在最后将变量调用到以下代码中:

for element in iter:
    # Look for a tag called "Timeinfo"
    if element.tag == "timeinfo":
        tree = root.find(".//timeinfo")
        # Clear all tags below "timeinfo"
        tree.clear()
        element.append(ET.Element("mdattim"))
        child1 = ET.SubElement(tree, "sngdate")
        child2 = ET.SubElement(child1, "caldate1")
        child3 = ET.SubElement(child1, "caldate2")
        child4 = ET.SubElement(child1, "caldate3")
        child2.text = FIRST DATE VARIABLE GOES HERE
        child2.text = SECOND DATE VARIABLE GOES HERE
        child2.text = THIRD DATE VARIABLE GOES HERE

感谢任何帮助。

3 个答案:

答案 0 :(得分:13)

Split返回一个列表,如下所示

>>> a="08-26-2009;08-27-2009;08-29-2009"
>>> a_split = a.split(';')
>>> a_split
['08-26-2009', '08-27-2009', '08-29-2009']

答案 1 :(得分:4)

child2.text, child3.text, child4.text = three_dates_text.split(';')

答案 2 :(得分:3)

当你有名为child1,child2,child3和child4的变量时,这是一种代码气味,暗示你应该使用列表或其他类型的集合。

children =  [ET.SubElement(tree, "sngdate")]
children += [ET.SubElement(children[0], "caldate%s" % i) for i in xrange(3)]

四个单独的变量是一个包含四个元素的列表。现在,您可以更新每个项目中的日期:

dates = "08-26-2009;08-27-2009;08-29-2009"

for i, d in enumerate(dates.split(";")):
    children[i+1].date = d

即使您事先不知道物品的数量,也可以将其调整为适用于任意数量的物品。