Что такое "_csv" в Python?
При попытке прочитать исходный код для файла csv.py
(в качестве руководства по реализации моего собственного класса writer
в другом контексте) я обнаружил, что большая часть функций в этом файле, в свою очередь, импортируется из чего-то называется _csv
:
from _csv import Error, __version__, writer, reader, register_dialect, \
unregister_dialect, get_dialect, list_dialects, \
field_size_limit, \
QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, \
__doc__
Я не могу найти файл с этим именем в моей системе (включая поиск файлов с помощью набора атрибутов Hidden), хотя я могу сделать import _csv
из оболочки Python.
Что это за модуль и можно ли его прочитать?
Ответы
Ответ 1
_csv
является C "основой" модуля csv
. Его источник находится в Modules/_csv.c
. Вы можете найти скомпилированную версию этого модуля из командной строки Python с помощью:
>>> import _csv
>>> _csv
<module '_csv' from '/usr/lib/python2.6/lib-dynload/_csv.so'>
В исходном коде Python нет скрытых файлов:)
Ответ 2
Не соглашайтесь с ответом ларшманов.
Существует официальное объяснение соглашения об именах модулей в PEP8:
Когда модуль расширения, написанный на C или С++, имеет сопутствующий модуль Python, который обеспечивает более высокий уровень (например, более объектно-ориентированный) интерфейс, модуль C/С++ имеет лидирующий символ подчеркивания (например, _socket)
Ответ 3
Ответ уже принят, но я хотел добавить несколько деталей, поскольку у меня был тот же вопрос, что и OP.
Содержимое файла .csv - это только документ с разделителями-запятыми со значениями:
first,last
john,doe
...
Вы можете проверить это, открыв файл .csv в блокноте
Если вы хотите создать CSV файл, вы можете записать его, и вы получите файл csv, который вы хотите.
with open('test.csv', 'w') as file:
file.write('first,last\n')
file.write('John,Doe\n')
Простое решение, если вы хотите записать в CSV файл без использования "import csv".