Я использую python для разбора строки, разделенной запятыми. Я хочу сделать некоторые вычисления впоследствии по данным. Длина строки: 800 символов с 120 полями, разделенными запятой. Там есть 1,2 миллиона строк для обработки.Python быстрый синтаксический анализ строк, манипуляция
for v in item.values():
l.extend(get_fields(v.split(',')))
#process l
get_fields использует operator.itemgetter() для извлечения около 20 поля из 120.
Вся эта операция занимает около 4-5 минут без учета времени, чтобы привести в данных. В более поздней части программы я вставляю эти строки в таблицу памяти sqlite для дальнейшего использования. Но в целом 4-5 минут для просто синтаксического анализа и получения списка не подходит для моего проекта.
Я запускаю эту обработку примерно через 6-8 потоков.
Возможно ли переключение на C/C++?
Вы вызываете функцию, которая должна перебирать 800 символов, и вы делаете это более миллиона раз. Даже для компьютера это очень много для обработки. – tlayton
http://docs.python.org/library/csv.html – kennytm
Если вы планируете изобретать колесо, вы должны посмотреть следующее сообщение: http://stackoverflow.com/questions/3055477/how-slow- is-pythons-string-concatenation-vs-str-join также вы должны смотреть на генераторы. –