it-roy-ru.com

Python - удаление первых 2 строк строки

Я искал много тем здесь при удалении первых двух строк строки, но я не могу заставить ее работать с каждым решением, которое я пробовал.

Вот как выглядит моя строка:

version 1.00
6992
[-4.32063, -9.1198, -106.59][0.00064, 0.99993, -0.01210][etc...]

Я хочу удалить первые две строки этого файла сетки Roblox для сценария, который я использую. Как я могу это сделать?

12
GShocked

Я не знаю, каков ваш конечный персонаж, но как насчет чего-то вроде

postString = inputString.split("\n",2)[2];

Конечный символ, возможно, должен быть экранирован, но это то, с чего я бы начал.

20
dstudeba
x="""version 1.00
6992
[-4.32063, -9.1198, -106.59][0.00064, 0.99993, -0.01210][etc...]
abc
asdda"""
print "\n".join(x.split("\n")[2:])

Вы можете просто сделать это.

6
vks

Удалите строки с помощью split:

lines = """version 1.00
6992
[-4.32063, -9.1198, -106.59][0.00064, 0.99993, -0.01210][etc...]"""

lines = lines.split('\n',2)[-1]
2
Daniel

Я бы предпочел не разбивать строки в случае, если строка велика, и впоследствии поддерживать типы новой строки.

Удалить первые n строк:

def find_nth(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+len(needle))
        n -= 1
    return start
assert s[find_nth(s, '\n', 2) + 1:] == 'c\nd\n'

Смотрите также: Найти n-е вхождение подстроки в строке

Или удалить только один:

s = 'a\nb\nc\nd\n'
assert s[s.find('\n') + 1:] == 'b\nc\nd\n'

Проверено на Python 3.6.6.

Вы можете использовать некоторые правила, например, рассмотреть эти строки, только если они начинаются с символа '['lines = [line for line in lines if line.startswith('[')]

1
Bharadwaj