繁体   English   中英

如何从字符串中某些行的末尾删除 4 个字符?

[英]How do I delete 4 characters from the end of certain lines in a string?

我有一个.obj文件,这是一个用于 3D 图形的文本文件,这是一个示例:

f 17439/17439 17440/17440 17441/17441
g lCollar_306
f 17442/17442 17443/17443 17444/17444
f 17445/17445 17446/17446 17447/17447
f 17448/17448 17449/17449 17450/17450
f 17451/17451 17452/17452 17453/17453
f 17454/17454 17455/17455 17456/17456
f 17457/17457 17458/17458 17459/17459
g lShldr_308
f 17460/17460 17461/17461 17462/17462
f 17463/17463 17464/17464 17465/17465
g lCollar_306

我想通过文件 go 找到以字母'g'开头的每一行,并从每一行中删除最后四个字符(删除下划线和 3 位数字)。

我尝试了以下方法:

for line in data.split('\n'):
    if (line.startswith('g')):
        line = line.rstrip(line[-4])

这似乎并没有改变变量data中的任何内容。 我需要将 output 作为字符串保存到文件中,但我似乎无法让它工作。 我该如何解决?

您将缓冲区分成几行并对其进行迭代,将每一行分配给变量line 然后您生成一个新字符串 ( rstrip ) 并将其分配回变量line 但这不会改变原始缓冲区。 您只是在旁边生成一个新字符串,然后将其丢弃。

您可能想要做的是将这些行写入一个新文件,如下所示:

f = open("output.obj", "w")
for line in data.split('\n'):
    if line.startswith('g'):
        line = line.rstrip(line[-4])
    print(line, file=f, end='\n')
f.close()

请注意,这里我们正在对新的line值做一些事情(在调用rstrip之后)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM