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