У меня есть три файла входных данных. Каждый использует разные разделители для данных, содержащихся в них. Первый файл данных выглядит так:
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)
Он напечатает словарь с подсчетом всех допустимых символов. В любом случае место всегда выигрывает, так что я могу ' Я полагаюсь на это, чтобы сказать мне, что такое разделитель.
Но я не могу придумать лучшего способа сделать это.
Есть предложения?