У меня есть три файла входных данных. Каждый из них использует другой разделитель для содержащихся в нем данных. Файл данных выглядит следующим образом:
apples | bananas | oranges | grapes
файл данных два выглядит следующим образом:
quarter, dime, nickel, penny
файл данных три выглядит следующим образом:
horse cow pig chicken goat
(изменение количества столбцов также преднамеренно)
Мысль о том, что я должен был подсчитать количество не-альфа-символов, и предположить, что самый высокий счетчик был символом разделителя. Тем не менее, файлы с не-пространственными разделителями также имеют пробелы до и после разделителей, поэтому пробелы выигрывают во всех трех файлах. Здесь мой код:
def count_chars(s):
valid_seps=[' ','|',',',';','\t']
cnt = {}
for c in s:
if c in valid_seps: cnt[c] = cnt.get(c,0) + 1
return cnt
infile = 'pipe.txt' #or 'comma.txt' or 'space.txt'
records = open(infile,'r').read()
print count_chars(records)
Он будет печатать словарь с подсчетом всех допустимых символов. В каждом случае пространство всегда выигрывает, поэтому я не могу полагаться на это, чтобы сообщить мне, что такое разделитель.
Но я не могу придумать лучшего способа сделать это.
Любые предложения?