【问题标题】:How to delete the last 4 characters from every line in a file? - Python [duplicate]如何从文件中的每一行删除最后 4 个字符? - Python [重复]
【发布时间】:2020-08-19 03:40:38
【问题描述】:

谁能给我一些关于创建循环以从输入文件中的每一行中删除最后 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,1er,xyz,lon,thr,toj,,^M
Ahks,1er,xyz,lon,thr,taj,,^M
Auks,1er,xaz,lon,thr,tej,,^M
Aqks,1er,xyz,lon,thr,twj,,,^M
Aoks,1er,xaz,lon,thr,twj,,^M
Apks,1er,xwz,lon,thr,trj,,^M
Alks,1er,xuz,lon,thr,toe,,^M
ssks,1er,xoz,lon,thr,toj,,^M
ssks,1er,xnz,lon,thr,tog,,,^M

【问题讨论】:

  • 你需要在更改数据后写回数据,我建议写入一个单独的文件,以防万一......哦,这是line[:-3]砍掉最后三个字符。
  • 您实际上必须修改文件,您还没有在任何地方这样做。执行此操作的安全方法是创建一个单独的文件,该文件是原始文件的修改版本,然后在最后删除旧文件并在必要时重新命名新文件。

标签: python python-3.x file character


【解决方案1】:

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

使用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') 因为换行已被删除,我们希望它回来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多