Python escaping backslash

会有一股神秘感。 提交于 2019-12-02 17:59:16

问题


I'm trying to escape the backslash, but trying to understand the right way of doing it

foo = r'C:\Users\test.doc'

The above works fine

However, when I want to escape the path stored in a variable

For example :

parser.add_argument('-s', '--source', type = str, help = 'Source file path')

Now, how do escape the value in - args.source


回答1:


So there are a few escape sequences to be aware of in python and they are mainly these.

So when the string for that file location is parsed by the add_argument method it may not be interpreted as a raw string like you've declared and there will be no way to escape the backslashes outside of the declaration.

What you can do instead is to keep it as a regular string (removing the 'r' prefix from the string) and using the escape character for a backslash in any places there may be conflict with another escape character (in this case \t). This may work as the method may evaluate the string correctly.

Try declaring your string like this.

foo = "C:\Users\\test.doc"

Hopefully this helps fix your issue!

EDIT:

In response to handling the dynamic file location you could maybe do something like the following!

def clean(s):
    s = s.replace("\t", "\\t")
    s = s.replace("\n", "\\n")
    return s

Until you've covered all of your bases with what locations you may need to work with! This solution might be more appropriate for your needs. It's kind of funny I didn't think of doing it this way before. Hopefully this helps!



来源:https://stackoverflow.com/questions/31213556/python-escaping-backslash

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!