Skip to main content
 首页 » 编程设计

python之从文本文件中过滤行

2025年05月04日16think

我必须清除一个 txt 文件 (test.txt),删除以“(”开头的行或空行,然后重命名它 (test_ok.txt)

我使用这个函数:

def clearfile(filename): 
    for row in (open (filename, 'r')).readlines(): 
        if row[0][0]<>'\n' and riga[0][0]<>'(' : 
            out_file = open('%s_%s%s' %(os.path.splitext(filename)[0],'ok',os.path.splitext(os.path.basename(filename))[1]) , 'a') 
            out_file.write(riga)  
            out_file.close() 
    return out_file 

它可以工作,但速度很慢。有什么优化技巧吗?

这是我的新功能:

def clearfile(filename): 
    with open (filename, 'r') as a, open('%s_%s%s' %(os.path.splitext(filename)[0],'ok',os.path.splitext(os.path.basename(filename))[1]) , 'a') as b: 
        for row in (a).readlines(): 
            if row[0][0]!='\n' and row[0][0]!= '(' : 
                b.write(row)  
        b.close 

请您参考如下方法:

为什么多次打开/关闭文件?

def clearfile(filename): 
    out_file = open('%s_%s%s' %(os.path.splitext(filename)[0], 'ok', os.path.splitext(os.path.basename(filename))[1]) , 'a') 
    for row in (open (filename, 'r')).readlines(): 
        if row[0][0]!= '\n' and riga[0][0]!='(' : 
            out_file.write(riga)  
    out_file.close() 
    return out_file