如何从文件的每一行中删除最后4个字符? -Python

问题描述

有人可以给我一些建议,以创建一个循环来剪切输入文件中每一行的最后4个字符吗?

我尝试过:

myfile =  open('delete.txt','w+') 
myfile.read()
for line in myfile:
        line = line[:3]
       
myfile.close()

文件格式如下:

Awks,1er,xyz,lon,thr,tkj,^M
Atks,toj,^M
Ahks,taj,^M
Auks,xaz,tej,^M
Aqks,twj,^M
Aoks,^M
Apks,xwz,trj,^M
Alks,xuz,toe,^M
ssks,xoz,xnz,tog,^M

解决方法

正如一些评论所说,打开输入文件并将输出写入单独的文件可能更安全。

使用with块很方便,因为您不需要处理关闭文件;您的文件将在块末自动关闭。

我会做这样的事情:

with open('input.txt','r') as infile:
    with open('output.txt','w') as outfile:
        for line in infile:
            outfile.write(line[:-5])
            outfile.write('\n')

line[:-5]将删除每行的最后五个字符,这可能是您想要的,因为每行还包含一个换行符,因此它将删除该换行符和四个字符。我们outfile.write('\n')因为换行已被删除,我们希望它回来。