Skip to main content
 首页 » 编程设计

python之如何删除文件中不同样式的行(都是str格式)

2025年05月04日14softidea

我有一个使用 python 打开的文档:

with open('my_file.txt', 'r') as fin: 
    myfile = fin.readlines() 

在我的文件中,我有这样的行:

 
 
     1HEE     JJ    1   3.904   5.512   1.259\n 
     2HEE    CJJ    2   4.199   5.292   1.353\n 
     2LLO    SJJ    3   4.367   5.234   1.445\n 
     3LLO     JJ    4   4.041   4.969   1.220\n 
   6.50000   6.50000  6.50000\n 
 This is some other title.\n 
 3\n 
     1GOO    HSC    1   4.088   4.816   1.041\n 
     1DDD      H    2   9.018   0.828   7.094\n 
     2DDD      H    3  19.018   0.828   7.094\n 
 

我需要保留的唯一行是这些行:

 
 
     1HEE     JJ    1   3.904   5.512   1.259\n 
     2HEE    CJJ    2   4.199   5.292   1.353\n 
     2LLO    SJJ    3   4.367   5.234   1.445\n 
     3LLO     JJ    4   4.041   4.969   1.220\n 
     1GOO    HSC    1   4.088   4.816   1.041\n 
     1DDD      H    2   9.018   0.828   7.094\n 
     2DDD      H    3  19.018   0.828   7.094\n 
 

换句话说,包含来自以下信息的信息的行:

myfile[line][:44] 我必须保留。

我必须删除其他行(较短的行)。

关于如何做到这一点有什么想法吗?

请您参考如下方法:

如果必须删除的行总是少于 44 个字符,而有效行总是至少有 44 个字符(如您所说),您可以这样做:

with open('input.txt', 'r') as infile: 
    with open('output.txt', 'w') as outfile: 
        for line in infile: 
            if len(line) >= 44: 
                outfile.write(line)