我试图找到一种方法,从一个变量打印原始形式的字符串。例如,如果我为路径向windows添加一个环境变量,该变量可能看起来像“C:\ windows\Users\alexb\”,我知道我可以:
print(r'C:\\Windows\Users\alexb\')
但我不能在变量前加r。。。。为了纪念
test = 'C:\\Windows\Users\alexb\'
print(rtest)
很明显只是想打印rtest
我也知道
test = 'C:\\Windows\Users\alexb\'
print(repr(test))
但这将返回“C:\ Windows\Users\x07lexb” 也一样
test = 'C:\\Windows\Users\alexb\'
print(test.encode('string-escape'))
因此,我想知道是否有任何优雅的方法,使一个变量保持该路径打印原始,仍然使用测试。如果只是
print(raw(test))
但事实并非如此:
不能将现有字符串变成“raw”。文本上的
r
前缀由解析器理解;它告诉它忽略字符串中的转义序列。但是,一旦字符串文本被解析,原始字符串和“常规”字符串就没有区别。例如,如果您有一个包含换行符的字符串,那么在运行时就无法判断该换行符是否来自转义序列\n
,是否来自三引号字符串中的文字换行符(甚至可能是原始换行符!),从调用chr(10)
开始,从文件中读取,或者您可以想到的其他方法。从这些方法中构造的实际字符串对象看起来是相同的。通常,要从字符串变量中生成原始字符串,我使用以下命令:
输出:
我遇到了一个类似的问题,偶然发现了这个问题,多亏了尼克·奥尔森·哈里斯,我知道解决问题的办法在于改变字符串。
两种解决方法:
使用本机python函数获取所需的路径,例如:
这使得它独立于平台,现在可以与
.encode
一起工作。如果这是你的一个选择,它是更优雅的解决方案。如果字符串不是路径,请以与python字符串兼容的方式定义它,在本例中,通过转义反斜杠:
相关问题 更多 >
编程相关推荐