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

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

  1. Если число строк в файле меньше 20

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

Обходной путь вашего кода, где я предполагаю, что 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...