Не экранируйте строку в Python 3 - PullRequest
0 голосов
/ 02 июля 2019

Я получаю некоторые данные из файла, но после некоторой обработки Python экранирует обратную косую черту, что является нежелательным поведением.

Python 3 в Windows 10

line = "URL     ABC     \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']

Проблема не в представлении строк в Python. Проблема в том, что мне нужно записать вывод в файл, поэтому, когда я пытаюсь записать tokens[2] в файл, он записывается \\/A\\/B\\/C\\/D вместо \/A\/B\/C\/D. Какой вывод неправильный.

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Вам нужно взять ее как необработанную строку вместо

line = "URL     ABC     \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']

вам нужно добавить r перед строкой, чтобы ничто не могло сбежать.

line = r"URL     ABC     \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']
0 голосов
/ 02 июля 2019

попытайтесь удалить вашу строку с помощью: добавить это после вашего раскола

line = "URL ABC \/A\/B\/C\/D" #line of fetched file tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D'] tokens[2]=tokens[2].decode('string_escape') ;

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