webentwicklung-frage-antwort-db.com.de

Python - Löschen der ersten 2 Zeilen einer Zeichenfolge

Ich habe hier viele Threads gesucht, als ich die ersten zwei Zeilen einer Zeichenfolge entfernt habe, aber ich kann nicht scheinen, dass sie mit jeder Lösung funktioniert, die ich versucht habe.

So sieht meine Saite aus:

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

Ich möchte die ersten beiden Zeilen dieser Roblox-Netzdatei für ein von mir verwendetes Skript entfernen. Wie kann ich das machen?

12
GShocked

Ich weiß nicht, was dein Endcharakter ist, aber wie sieht es aus?

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

Das Ende-Zeichen muss möglicherweise umgangen werden, aber damit würde ich anfangen.

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:])

Sie können das einfach tun.

6
vks

Entfernen Sie die Zeilen mit 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

Ich möchte lieber keine Zeichenfolgen aufteilen, wenn die Zeichenfolge groß ist, und danach die Zeilenvorschubarten beibehalten.

Löschen Sie die ersten n Zeilen:

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'

Siehe auch: Finden Sie das n-te Vorkommen eines Teilstrings in einem String

Oder nur einen zu löschen:

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

Getestet mit Python 3.6.6.

Sie können einige Regeln verwenden, z. B. diese Zeilen nur berücksichtigen, wenn sie mit '['-Zeichen lines = [line for line in lines if line.startswith('[')] beginnen.

1
Bharadwaj