2016-11-07 2 views
-1

У меня есть CSV файл, как этотПроверка типа данных все столбца в CSV-файле через UNIX

dsdgh|234|@jhsjdh||jdhjdhfu|123| 
#45ghf|123|laiej|||b8#hfj| 
|hyrhyf|123||fhyr|@#$%| 

и так далее.

Число столбцов может быть равно 100. Также над файлом разделяется труба.

Я хочу, чтобы проверить тип данных каждого столбца есть ли столбец числовой или буквенный или буквенно-цифровая

и перенаправить результат в текстовом файле

пожалуйста, помогите мне, чтобы достичь этой

благодаря

+0

Является ли число столбцов в каждой строке одинаково? – qzb

+0

да нет. столбцов одинаковы в каждой строке – Chandan

ответ

0

Если предположить, что в каждой строке число столбцов равно, вы можете использовать этот скрипт:

import re 
import sys 

input_file = open(sys.argv[1]) 

cols = None 

for line in input_file.readlines(): 
    fields = line.split('|') 

    if not cols: 
     cols = map(lambda _: 'empty', fields) 

    for i, field in enumerate(fields): 
     if field == '': 
      continue 

     if re.match(r'^[0-9]+$', field): 
      if cols[i] == 'empty': 
       cols[i] = 'numeric' 
      elif cols[i] == 'alphabetic': 
       cols[i] = 'alphanumeric' 
     elif re.match(r'^[^0-9]+$', field): 
      if cols[i] == 'empty': 
       cols[i] = 'alphabetic' 
      if cols[i] == 'numeric': 
       cols[i] = 'alphanumeric' 
     else: 
      cols[i] = 'alphanumeric' 

print '|'.join(cols) 

Просто сохраните его в файл (script.py в данном примере) и выполнить команду:

$ python script.py <path_to_file_with_columns> 
+0

Благодарим за помощь, но мне нужно, чтобы скрипт был установлен в unix – Chandan

+0

* Unix * - это операционная система, а не язык программирования. И интерпретатор python доступен на большинстве совместимых с posix систем, включая Linux и OSX. Если вы хотите достичь этого, используя сценарий оболочки, вы должны включить эту информацию в свой вопрос. – qzb

+0

yes unix - это операционная система, но я не хочу этого решения в python, у меня есть другой скрипт оболочки, я просто хочу добавить решение вышеупомянутых вопросов в этот сценарий оболочки – Chandan