首页 > 解决方案 > 如何完全删除文本文件的第一行?

问题描述

我有一个输出文本文件(Mod_From_SCRSTXT.txt)的脚本。我需要删除该文件的第一行。

我尝试更改find如下所示函数的最后一行。即使进行了更改,第一行仍会打印在创建的新文件中。

    def find(substr, infile, outfile):                        
      with open(infile) as a, open(outfile, 'a') as b:        
       for line in a:                                         
        if substr in line:                                    
         b.write(line[1:]) 

    srcn_path1 = input("   Enter Path. Example: U:\...\...\SRCNx\SCRS.TXT\n" +
                       "   Enter SRCS.TXT's Path: ")
    print ()

    scrNumber1 = input('   Enter SCR number: ')
    print ()

    def find(substr, infile, outfile):                        
      with open(infile) as a, open(outfile, 'a') as b:        
       for line in a:                                         
        if substr in line:                                    
         b.write(line) # or (line + '\n')                                

    # action station:                                          
    find(scrNumber1, srcn_path1, 'Mod_From_SCRSTXT.txt')

实际结果:

VSOAU-0004 16999  
VSOAU-0004
VSOAU-0004
VSOAU-0004
VSOAU-0004

预期结果:

VSOAU-0004
VSOAU-0004
VSOAU-0004
VSOAU-0004

标签: python

解决方案


你需要做一个小的调整:

您可以计算文件中的行数:

numberOfLines = 0

for line in file:
    numberOfLines += 1

for line in range(1, linesInFile + 1):

或者您可以通过许多不同的方式忽略第一行,这是一个简单的方式:

ignoredLine = 0

for line in file:
    if not ignoredLine:
        ignoredLine = 1
    else:
        #Do stuff with the other lines

推荐阅读