按字符数量拆分字符串

31 投票
8 回答
75166 浏览
提问于 2025-04-16 23:53

我搞不清楚怎么用字符串的方法来处理这个问题:

在我的文件里,有一些像这样子的内容:1.012345e0070.123414e-004-0.1234567891.21423... 这意味着这些数字之间没有任何分隔符。

现在,当我从这个文件中读取一行时,我得到的字符串就像上面那样,我想在比如说12个字符后进行分割。 目前为止,我没有找到像str.split()这样的字符串方法可以做到这一点,可能我漏掉了什么?

谢谢!

8 个回答

8
line = "1.012345e0070.123414e-004-0.1234567891.21423"
firstNumber = line[:12]
restOfLine = line[12:]

print firstNumber
print restOfLine

输出:

1.012345e007
0.123414e-004-0.1234567891.21423
19

你在寻找字符串切片的相关内容。

>>> x = "1.012345e0070.123414e-004-0.1234567891.21423"
>>> x[2:10]
'012345e0'
35

因为你想用一种不太常见的方式来循环,所以使用生成器是个不错的选择,可以让这个过程更简单:

def chunks(s, n):
    """Produce `n`-character chunks from `s`."""
    for start in range(0, len(s), n):
        yield s[start:start+n]

nums = "1.012345e0070.123414e-004-0.1234567891.21423"
for chunk in chunks(nums, 12):
    print chunk

生成的结果是:

1.012345e007
0.123414e-00
4-0.12345678
91.21423

(看起来可能不太对,但实际上这些是12个字符一组的片段)

撰写回答