Определить файл в режиме новой строки / открыть файл - PullRequest
0 голосов
/ 23 января 2019

У меня есть метод, который получает объект текстового файла в качестве входных данных и извлекает данные с помощью модуля csv.

def extract_data(csvfile):
    csv_data = csv.reader(csvfile, dialect='excel-tab')
    # do things...

Чтобы csv работал правильно, csvfile должен быть файловым объектом, открытым с newline=''. Однако, кажется, нет никакого механизма, чтобы проверить это.

PEP 278 описывает атрибут newlines файловых объектов. Однако этот атрибут, похоже, хранит историю прочитанных / записанных символов новой строки, а НЕ параметр newline.

Вопросы:

  1. Как я могу определить, что csvfile был открыт с помощью newline=''?
  2. Если 1. невозможно, как я могу заново открыть csvfile самостоятельно? Также работает с StringIO или с TemporaryFile?
...