[英]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.