使用python将大文件拆分为带有序列的较小字符串

时间:2013-06-04 15:34:54

标签: python delimiter

我可以在循环中执行以下操作,但是正在寻找更简洁的方法来执行此操作,或者更好的方法。

我的字符串可能超过100,000个字符。

示例:

somestring,otherstring,MyString中,blahstring等...

我需要将字符串拆分为多个字符串或列表,每个部分包含少于30,000个字符,而在此示例中仅使用逗号分隔,逗号。

就像我之前说的那样,我写了一个for循环,我在几行中管理它,但它很乱,我想要了解更多关于python,所以我想在这里看到更好的方法来处理它。谢谢你的任何指示。

2 个答案:

答案 0 :(得分:0)

python str类(字符串)包含一个名为split的方法。您要做的是致电s.split(',')。您可以使用您选择的分隔符替换逗号。这将返回一个字符串列表。分隔符将从列表中的每个字符串中删除。

答案 1 :(得分:0)

我喜欢这样的事情:

chunks = []      // used to store the smaller chunks
maxlen = 30000   // maximum chunk size

while True:
    if len(myString) <= maxlen:    
        chunks.append(myString)   // add the last chunk
        break                     // done

    sepIndex = myString.rfind(delim, 0, maxlen)  // find last delimiter < maxlen
    chunks.append(myString[:sepIndex])           // add it to chunks
    myString = myString[sepIndex + 1:]           // remove it and delimiter

如果您需要保留原始字符串,请对原始字符串的副本进行操作。

P.S。该算法非常类似于自动换行算法(例如,拆分空间低于80个字符),所以你也可以搜索它们。