首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按字符数拆分字符串

按字符数拆分字符串
EN

Stack Overflow用户
提问于 2011-08-19 00:47:08
回答 6查看 65.1K关注 0票数 29

我不知道如何使用字符串方法做到这一点:

在我的文件中,有类似于1.012345e0070.123414e-004-0.1234567891.21423...的内容这意味着数字之间没有分隔符。

现在,如果我从这个文件中读取一行,我会得到一个类似上面的字符串,我想在例如12个字符之后拆分它。就我所见,没有办法用str.split()或任何其他字符串方法来做到这一点,但也许我忽略了一些东西?

Thx

EN

回答 6

Stack Overflow用户

发布于 2011-08-19 00:53:43

由于您希望以一种不寻常的方式进行迭代,因此生成器是一个很好的抽象方法:

代码语言:javascript
复制
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

产生:

代码语言:javascript
复制
1.012345e007
0.123414e-00
4-0.12345678
91.21423

(看起来不太对劲,但这些是12个字符的块)

票数 34
EN

Stack Overflow用户

发布于 2011-08-19 00:49:20

你在找string slicing.

代码语言:javascript
复制
>>> x = "1.012345e0070.123414e-004-0.1234567891.21423"
>>> x[2:10]
'012345e0'
票数 18
EN

Stack Overflow用户

发布于 2011-08-19 00:53:43

你可以这样做:

代码语言:javascript
复制
step = 12
for i in range(0, len(string), 12):
    slice = string[i:step]
    step += 12

这样,在每次迭代中,您将获得一个包含14个字符的切片。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7111068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档