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

时间:2018-12-26 08:17:02

标签: python file

我在目录中有很多文件,它们具有不同的行号和相同的列号(17列)。我想遍历所有文件并执行以下操作。

  1. 如果文件中的行数小于100
  2. 添加具有相同列号(17)的值(0.00 0.00 ...)的新行,直到文件具有100行
  3. 如果行号在100到200之间,则重复第2步,但最多200行

下面的代码,但是我不知道我必须在if语句中写什么才能获得实际结果

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

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您希望使用bash实现的解决方案,可以查看此bash脚本

#!/usr/bin/env bash

printfn() {
    for (( i=0;i<$1;i++ ))
        do
            for (( j=0;j<$3;j++ ))
            do
               printf "0.00  "#<---change spacing that fits your column requiments 
            done
            printf "\n"
        done >> $2
    }

#Here columns are 17
COLS=17                       #<---change column numbers if you need
f=(*.dat)
for file in ${f[@]}; do
    lines=`cat $file | wc -l`
    if [[ $lines -lt 100 ]] ; then 
        printfn 100-$lines $file 17
    elif [[ $lines -lt 200 && $lines -gt 100 ]]; then
        printfn 200-$lines $file 17
    fi
done

如果#of行数小于100或行数在200到100之间,则用零填充该文件。将其放入文件中(例如script.sh)。

别忘了chmod +x script.sh