首页 > 解决方案 > 添加特定的新行直到获得特定的数字行python

问题描述

我在一个目录中有大量具有不同行号和相同列号(10 列)的文件。我想遍历所有文件并执行以下操作。

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

  2. 添加具有相同列号 (10) 的 value(1 1 1 0 1 1 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
      .....

标签: pythonfile

解决方案


您的代码的一种解决方法,我假设它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 

推荐阅读