3

我有一个由从图像创建 ASCII 艺术的脚本生成的多行字符串。它创建一条线,然后添加\r并继续。如何在\r不使用正则表达式的情况下获得第一行的长度,或者在它说之前?最好代码是相当可读的。

4

4 回答 4

4

findindex

>>> 'abcfoo\rhahahahaha'.find('\r')
6
>>> 'abcfoo\rhahahahaha'.index('\r')
6
于 2015-05-24T21:13:17.773 回答
3

尝试:

first, _, _ = s.partition('\r')
k = len(first)

如果您不需要字符串,则可以使用index

k = s.index('\r')

之所以有效,是因为s.index('\r')它包含最低索引k,这意味着在回车符之前的第一行s[k] == '\r'正好有k字符(s[0]through )。s[k-1]

于 2015-05-24T21:12:53.073 回答
1
import string
string.split(yourString, '\r')
length = len(string[0])

所以我们在这里所拥有的是直截了当的。我们获取您的字符串,并在获得 /r 标记后立即将其拆分。然后,由于所有以 /r 结尾的字符串都在一个数组中,我们只需计算数组中第一个捕获的字符串并将其分配给 var 长度。

于 2015-05-24T21:15:09.817 回答
1

以防万一您需要另一种解决方案..:

with open('test.txt','r') as f:
    t = f.read()
    l = t.splitlines()
    print(len(l[0]))
于 2015-05-24T21:24:02.543 回答