kr_krypton
@kr_krypton
мамкин хакер

Почему python не читает часть символов?

хочу сделать авто создание бат файла с содержимым
"C:\Program Files\Java\jdk1.8.0_161\bin\javac.exe HelloWorld.java

использую конструкцию
with open('start1.bat', 'w') as st:
st.write("\"C:\Program Files\Java\jdk1.8.0_161\bin\javac.exe\" HelloWorld.java")

но она почему то "проглатывает" "\b" и записывает как
"C:\Program Files\Java\jdk1.8.0_161in\javac.exe" HelloWorld.java
если строку st просто вывести с помощью print("") она "проглатывает" "1\bin" и выводит
C:\Program Files\Java\jdk1.8.0_16in\javac.exe HelloWorld.java
из за чего такое может быть? .encode('utf8') или .encode('cp1251') не помогают
  • Вопрос задан
  • 79 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Из-за того, что \b это управляющая последовательность. Либо экранируйте все слэши, либо используйте сырую строку.
Ответ написан
rishatsharafiev
@rishatsharafiev
React/Redux, Django
https://repl.it/repls/ChocolateAnnualWeb
Потому что python принимает \b как символ удаление предыдущего символа. Буква r перед строкой делает ее регулярным выражением, символы слеша распознаются как текстовые, а не управляющие последовательности
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
НЛ Континент Новосибирск
от 60 000 до 100 000 руб.
21 авг. 2018, в 11:52
70000 руб./за проект
21 авг. 2018, в 11:28
1000 руб./за проект
21 авг. 2018, в 11:24
40000 руб./за проект