Python转义反斜杠

use*_*845 3 python escaping

我试图逃避反斜杠,但试图了解正确的做法

foo = r'C:\Users\test.doc'
Run Code Online (Sandbox Code Playgroud)

以上工作正常

但是,当我想转义存储在变量中的路径时

例如 :

parser.add_argument('-s', '--source', type = str, help = 'Source file path')
Run Code Online (Sandbox Code Playgroud)

现在,如何转义值 - args.source

Tre*_*don 5

所以在python中有一些需要注意的转义序列,它们主要是这些。

在此处输入图片说明

因此,当该add_argument方法解析该文件位置的字符串时,它可能不会像您声明的那样被解释为原始字符串,并且无法在声明之外转义反斜杠。

您可以做的是将其保留为常规字符串(从字符串中删除 'r' 前缀)并在任何可能与另一个转义字符冲突的地方使用转义字符作为反斜杠(在这种情况下为 \t) . 这可能会起作用,因为该方法可以正确评估字符串。

尝试像这样声明你的字符串。

foo = "C:\Users\\test.doc"
Run Code Online (Sandbox Code Playgroud)

希望这有助于解决您的问题!

编辑:

为了响应处理动态文件位置,您可以执行以下操作!

def clean(s):
    s = s.replace("\t", "\\t")
    s = s.replace("\n", "\\n")
    return s
Run Code Online (Sandbox Code Playgroud)

直到您用可能需要使用的位置覆盖所有基地!此解决方案可能更适合您的需求。有点好笑我以前没想过这样做。希望这会有所帮助!