TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #375 · 26 авг.

POSIX (Portable Operating System Interface) — это набор стандартов, определяющих интерфейсы для обеспечения совместимости между операционными системами. Данный стандарт поддерживается всеми UNIX-системами (GNU/Linux, macOS, FreeBSD, OpenBSD и другие). А вот в Windows либо частично, либо через подсистемы (такие как WSL). Помимо прочих условий, один из важных моментов этого стандарта - правила синтаксического анализа строк, разбиение на токены. В Python разбиением строки на токены занимается функция shlex.split(), которая имеет один важный аргумент - posix. Этот аргумент определяет, следует ли функции использовать правила синтаксического анализа соответствующие стандарту POSIX, или использовать обратно совместимый, легаси режим. ▫️posix=True В POSIX-совместимом режиме функция shlex.split() будет учитывать переменную окружения IFS (Internal Field Separator) для определения разделителей полей и будет более строго следовать стандарту POSIX. Из строки удаляются неэкранированные кавычки и обратные слеши. ▫️posix=False В легаси режиме используется более старый способ разбиения строк на токены, который будет игнорировать переменную окружения IFS и использовать whitespaces как разделители полей. Теперь смотрим некоторые примеры. import shlex # кавычки text = r'"Do"Not"Separate" \"This\"' shlex.split(text, posix=False) # ['"Do"', 'Not"Separate"', '\\"This\\"'] shlex.split(text, posix=True) # ['DoNotSeparate', '"This"'] # специсимволы text = r'A\tB\nС\fD\vE' shlex.split(text, posix=False) # ['A\\tB\\nС\\fD\\vE'] shlex.split(text, posix=True) # ['AtBnСfDvE'] # обратный слеш text = r"cmd.exe c:\games\mario.exe" shlex.split(text, posix=False) # ['cmd.exe', 'c:\\games\\mario.exe'] shlex.split(text, posix=True) # ['cmd.exe', 'c:gamesmario.exe'] Учитвая, что аргумент posix по умолчанию True, стоит помнить этот факт при обработке строк с Windows-путями! Рекомендую самостоятельно поэксперементировать с этим аргументом! #libs

Hashtags

Резултати

Пронајдени 0 слични објави

Глобално пребарување

Не се пронајдени слични објави.

Оваа објава нема претходно пресметани резултати на сличност.