2015-05-28 2 views
-2

Я уже прошел через все резьбы, но до сих пор не может решить Issueзаменить греться слэш с пространством в питона

def process(date) 
    #here how to know that I need to convert date into raw literal 
    date = date.replace('\\', ' ') 
process("21\3\90") 

выход

21 90 

3 получает пропущено

а здесь работает

print r'pictures\12\761_1.jpg'.replace("\\", " ") 

выход

pictures 12 761_1.jpg 

любая помощь для преобразования 21\12\1234 в 21 12 1234

+3

'\ 3' не является' '3''. Это байт '\ x03'. Ваш ** вход ** не содержит обратную косую черту. Вам нужно удвоить эти обратные косые черты, если вы хотите произвести вывод с буквальными обратными косыми чертами, или использовать строковый литерал. –

+1

Ваш образец, где он работает, использует * сырой строковый литерал *. Обратите внимание на 'r' перед кавычками. –

+0

@MartijnPieters: да, я не мог понять, как использовать 'raw string literal' в случае даты. Ну вопрос не должен downvote – nlper

ответ

1

Вы должны обратный слеш перед «3» Даже если обратный слэш в кавычках это НЕ экранировать.
Если вы programitically вставить значение в функции, то я предлагаю выполнять другую .Привернуть и заменить «\» с «-»

Это должно преобразовать строку «21-3-90» и если вам нужно сломать его дальше, вы можете заменить «-» на «», как вы изначально предполагали.

[email protected]:~/PycharmProjects/untitled2$ python3.2 
Python 3.2.3 (default, Feb 27 2014, 21:31:18) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> def process(date): 
...  date = date.replace("\\", " ") 
...  print(date) 
... 
>>> process("21\\3\\90") 
21 3 90 
>>> process("13\\4\\90") 
13 4 90 
>>> 

[email protected]:~/PycharmProjects/untitled2$ python2.7 
Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> def process(date): 
...  date = date.replace("\\", " ") 
...  print(date) 
... 
>>> process("21\\3\\90") 
21 3 90 
>>> 
[email protected]:~/PycharmProjects/untitled2$ python3.2 
Python 3.2.3 (default, Feb 27 2014, 21:31:18) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> def process(date): 
...  date = date.replace('\\', ' ') 
...  print(date) 
... 
>>> process("21\\3\\90") 
21 3 90 
>>> 
Смежные вопросы