Восстановление части пакета, который был случайно удален

Это хорошая задача для Python.

$ cat input.txt
    a   b   c
A   alpha   beta    0
B   0   gamma   zeta
C   alpha   phi omega
D   kappa   0   delta

$ ./replace_nonzero.py  < input.txt                                                                                      
a   b   c
A   1   1   0
B   0   1   1
C   1   1   1
D   1   0   1

А вот replace_nonzero.py :

#!/usr/bin/env python
from __future__ import print_function
import sys

for index,line in enumerate(sys.stdin):
   if index == 0 :
       print(line.strip())
       continue
   words = line.strip().split()
   print(words[0],end="\t")

   new_line = []
   for word in words[1:]:
      if word.isdigit() and int(word) == 0:
          new_line.append('0')
      else:
          new_line.append('1')
   print("\t".join(new_line))

Это работает просто: мы пропускаем первую строку, так как это особый случай, и разбиваем все остальные строки на слова и исследуем те, которые начинаются с позиции 1. Логика здесь работает исходя из противоположного предположения. - если полученное слово является цифрой и равно нулю, то мы добавляем строку «0» в новый список (который представляет собой список слов в каждой строке), иначе - мы добавляем строку «1». Наконец, мы берем новый список и снова распечатываем его - с разделителями табуляции.

1
12.07.2016, 01:44
0 ответов

Теги

Похожие вопросы