Форум сайта python.su
В параметре при запуске передаю путь к файлу
'C:\Qt\1.txt', но там 1 “\”, делаю os.path.normpath , но он возвращает
'C:\\Qt\x01.txt'. Из за чего это может быть?
Офлайн
r'C:\Qt\1.txt'
Офлайн
Я передаю как параметр при запуске скрипта через консоль, сырые стоки не спасут. Или как-то можно в сырую строку превратить?
Офлайн
ivanzzz
Вы не понимаете, у вас уже есть правильная строка, в которой экранированы символы слеша.
>>> s = r'C:\Qt\1.txt' >>> s 'C:\\Qt\\1.txt' >>> print(s) C:\Qt\1.txt
>>> s 'C:\\Qt\\1.txt'
Офлайн
ivanzzzЕсли передаёшь, там всё уже превращено. Однако x01 возникает тогда, когда ты сам это пишешь, а не передаёшь. В питоне последовательность \NUMBER в строке считается восьмеричным кодом символа. Но отображаются только 16-ричные коды символов, поэтому при выводе 8-ричный код преобразуется в 16-ричный.
Или как-то можно в сырую строку превратить?
>>> '\0' '\x00' >>> '\1' '\x01' >>> '\12' '\n' >>> '\123' 'S' >>> '\1234' 'S4' >>>
Офлайн
Как сделать чтобы не переводилось в 16 коды?
Офлайн
ivanzzzПравильно записать надо. Если ты записал \1, то и получаешь число. Поэтому писать надо либо \\1, либо в виде сырой строки (предпочтительнее).
Как сделать чтобы не переводилось в 16 коды?
Отредактировано py.user.next (Май 26, 2016 15:40:23)
Офлайн