У меня есть метод, который получает объект текстового файла в качестве входных данных и извлекает данные с помощью модуля csv
.
def extract_data(csvfile):
csv_data = csv.reader(csvfile, dialect='excel-tab')
# do things...
Чтобы csv
работал правильно, csvfile
должен быть файловым объектом, открытым с newline=''
. Однако, кажется, нет никакого механизма, чтобы проверить это.
PEP 278 описывает атрибут newlines
файловых объектов. Однако этот атрибут, похоже, хранит историю прочитанных / записанных символов новой строки, а НЕ параметр newline
.
Вопросы:
- Как я могу определить, что
csvfile
был открыт с помощью newline=''
?
- Если 1. невозможно, как я могу заново открыть
csvfile
самостоятельно? Также работает с StringIO
или с TemporaryFile
?