Команда Linux file не классифицирует это как сценарий Python - PullRequest
0 голосов
/ 04 августа 2020

У меня есть сценарий Python, в котором я использую команду Linux file, чтобы классифицировать его как таковой в другом сценарии. К сожалению, это интерпретируется как C++ source, ASCII text. В этом случае начало сценария выглядит следующим образом:

#!/bin/python3

import os
import sys
import stat
import re

settings = {}

template_file = None
output_file = None

template_filename = None
output_filename = None

Однако, если я помещаю назначения None в блок if True, file правильно определяет это как a /bin/python3 script, ASCII text executable:

#!/bin/python3

import os
import sys
import stat
import re

settings = {}

if True:
    template_file = None
    output_file = None

    template_filename = None
    output_filename = None

Вот мой вывод терминала:

$ cat python_as_cpp.py
#!/bin/python3

import os
import sys
import stat
import re

settings = {}

template_file = None
output_file = None

template_filename = None
output_filename = None
$ file python_as_cpp.py
python_as_cpp.py: C++ source, ASCII text
$ cat python_as_python.py
#!/bin/python3

import os
import sys
import stat
import re

settings = {}

if True:
    template_file = None
    output_file = None

    template_filename = None
    output_filename = None
$ file python_as_python.py
python_as_python.py: a /bin/python3 script, ASCII text executable
$ file -v
file-5.11
magic file from /etc/magic:/usr/share/misc/magic

Что может привести к тому, что первый образец кода будет обнаружен как C ++?

1 Ответ

0 голосов
/ 04 августа 2020

У нас была установлена ​​старая версия file. Обновление до v5.39 устранило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...