web-dev-qa-db-ja.com

Python-文字列の最初の2行を削除する

ここでは、文字列の最初の2行を削除するために多くのスレッドを検索しましたが、試したすべてのソリューションで動作するように思えません。

文字列は次のようになります。

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

使用しているスクリプトのこのRobloxメッシュファイルの最初の2行を削除したいです。どうやってやるの?

17
GShocked

エンドキャラクターが何なのかわかりませんが、

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

終了文字はエスケープする必要があるかもしれませんが、それは私が最初から始めるものです。

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

これを簡単に行うことができます。

7
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番目の出現を検索

または、1つだけを削除するには:

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