TrackVariable = r'one\two\three'
TrackVariable
将在整个代码中不断变化;但是,它始终是原始字符串,可能或可能没有包含任意数量的
原始字符串甚至可能连续包含几个\
字符。\
字符,如下面的示例所示
TrackVariable = r'one\\\two\\\three'
如果手动命名文件one\two\three.txt
并将其拖到终端窗口中,它将自动格式化为one\\two\\three.txt
如果手动命名文件
one\\two\\three.txt
并将其拖到终端窗口中,它将自动格式化为one\\\\two\\\\three.txt
最后,如果我手动命名文件
one\\\two\\\three.txt
并将其拖到终端窗口中,它将自动格式化为one\\\\\\two\\\\\\three.txt
我如何编写正则表达式(或其他类型的代码),以上述方式自动重新格式化变量。我假设有某种代码会在每次出现
我问这个问题是因为我需要运行一个Shell脚本,其中\
之后附加\
。我该怎么做?TrackVariable
将成为文件路径的一部分。Edit:
运行Shell脚本时,必须转义许多其他字符。是否有一种简单的方法可以自动转义任何需要转义带有原始字符串分配的变量的字符?以下是需要转义的字符(每个字符之间用空格分隔)(我已经知道如何转义换行)
| & ; ( ) < > ~ * ? ! $ # [ ] { } ' " `
import re
TrackVariable = r'D\o y\\ou g\\\et it y\\\\et?'
TrackVariable = re.sub(r'(\\)', r'\1\\', TrackVariable)
print(TrackVariable)
打印-> D\\o y\\\\ou g\\\\\\et it y\\\\\\\\et?