添加特定的新行,直到获得特定的数字行python

时间:2019-02-26 09:14:43

标签: python file

我在目录中有许多行号不同且列号相同(10列)的文件。我想遍历所有文件并执行以下操作。

  1. 如果文件中的行数小于20

  2. 添加具有相同列号(10)的值(1 1 1 0 1 1 0 0 1 1 0)的新行,直到文件有20行

  3. 如果行号在20到40之间,则重复第2步,但最多40行

下面的代码,但我不知道如何完成才能获得实际结果

    os.chdir('./directory/')
    names={}
    for fn in glob.glob('*.dat'):
    with open(fn) as f:
     names[fn]=sum(1 for line in f)
     line=f.readlines()
     x=[1 1 1 0 1 1 0 1 1 0]
     if names[fn] < 20:
       .....
     if names[fn]>20 and names[fn]<40
      .....

1 个答案:

答案 0 :(得分:0)

对您的代码的一种解决方法进行排序,在此我假设x = [1 1 1 0 1 1 0 1 1 0]是一个字符串数据类型变量。如果没有,您总是可以将其转换为一个并完成。此外,它还会对文件及其已存在的行数进行完整性检查,将其缩短一点,然后执行所需的过程。希望对您有帮助

os.chdir('./directory/')
names={}
x=[1 1 1 0 1 1 0 1 1 0]
for fn in glob.glob('*.dat'):
    with open(fn) as f:
       line=f.readlines()
       i = len(line)
    if i < 20:
       with open(fn, 'a') as input_file:
            while i < 20:
                input_file.write(x)
                input_file.write("\n")
                i+=1 
    if i > 20 and i < 40
          with open(fn, 'a') as input_file:
            while i < 40:
                input_file.write(x)
                input_file.write("\n")
                i+=1