Добавление новых строк до получения определенного номера строки Python - PullRequest
0 голосов
/ 26 декабря 2018

У меня в каталоге большое количество файлов с разными номерами строк и одинаковыми номерами столбцов (17 столбцов).Я хочу просмотреть все файлы и выполнить следующую операцию.

  1. Если количество строк в файле меньше 100
  2. Добавить новые строки со значением (0,00 0,00 ...) с таким же номером столбца (17), пока файл не будет иметь 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 голосов
/ 26 декабря 2018

Если вам нужно решение, реализованное на 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 это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...