Я работал над проектом, где мне нужно было читать и обрабатывать очень большие CSV-файлы с миллионами строк как можно быстрее.
Я натолкнулся на ссылку: https://nelsonslog.wordpress.com/2015/02/26/python-csv-benchmarks/, где автор оценил различные способы доступа к CSV и время, затраченное на каждый шаг.
Он использовал процесс catdevnull с кодом, как показано:
def catDevNull():
os.system('cat %s > /dev/null' % fn)
Время, затрачиваемое в этом случае, является наименьшим. Я полагаю, что это не зависит от версии Python, так как время чтения файла остается неизменным. Затем он использует теплую боль, как показано ниже:
def wc():
os.system('wc -l %s > /dev/null' % fn)
Вышеуказанные два метода являются самыми быстрыми. При использовании pandas.read_csv
для этой задачи время меньше, чем у других методов, но все же медленнее, чем у двух вышеуказанных методов.
Установка x = os.system('cat %s > /dev/null % fn)
и проверка типа данных - это строка.
Как os.system
читает файл, что время намного меньше? Кроме того, есть ли способ получить доступ к файлам после того, как они прочитаны os.system
для дальнейшей обработки?
Мне также было любопытно, почему чтение файла намного быстрее в пандах по сравнению с другими методами, доступными, как показано в приведенной выше ссылке?