Flake8 E901 неожиданное поведение с оператором print () - PullRequest
1 голос
/ 31 октября 2019

Использование функции print() с аргументом ключевого слова file вызывает синтаксическую ошибку flake8 (см. Пример ниже). Как это возможно?

# -*- coding: utf-8 -*-
"""Flake8 problem."""
with open('hello_world.txt', 'rw') as f:
    print('Hello, World!', file=f)

E901 SyntaxError: неверный синтаксис (print('Hello, World!', file=f))

Я использую Sublime Text 3.2.2 в MacOS Catalina с flake8-3.7.9.

enter image description here

1 Ответ

2 голосов
/ 31 октября 2019

Вы должны прочитать документацию :

Аргумент file должен быть объектом с методом write(string);если он отсутствует или будет использоваться None, sys.stdout.

Вышеуказанное означает, что это должен быть объект файла , например, не имя файла, например:

with open('hello_world.txt', 'w+') as f:
    print('Hello, World!', file=f)
...