在python中如何将“\”替换为“/”?

2024-05-16 15:44:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个值path = V:\PRODUCTIONS\SC_02\SHOT_310\compRender\main\v003\2560x1440_exr\SC_02_SHOT_310_Compositing_main_v003.1001.exr,我需要用普通斜杠替换反斜杠。在

使用.replace("\\",'/')或{}可以得到:V:/PRODUCTIONS/SC_02/SHOT_310/compRender/main003�0x1440_exr/SC_02_SHOT_310_Compositing_main_v003.1001.exr

我想我可以用“/v”代替“\v”而不用担心,但是“\256”给了我一个特殊的字符,我无法搜索“\256”,因为字符串中的值会根据文件而变化。在

另外,我不能在字符串前面使用“r”,比如path=r"V:\PRODUCTIONS\SC_02\SHOT_310\compRender\main\v003\2560x1440_exr\SC_02_SHOT_310_Compositing_main_v003.1001.exr",因为我没有创建路径值,所以它被转发给我。在


Tags: 文件path字符串main字符replacescexr
1条回答
网友
1楼 · 发布于 2024-05-16 15:44:42

由于从另一个不可修改的源接收变量,因此字符串已经被转义。在

现在,对于您的字符串,有两个地方会误解字符:\v和{}。在

>>> path = 'V:\PRODUCTIONS\SC_02\SHOT_310\compRender\main\v003\2560x1440_exr\SC_02_SHOT_310_Compositing_main_v003.1001.exr'
>>> path
'V:\\PRODUCTIONS\\SC_02\\SHOT_310\\compRender\\main\x0b003®0x1440_exr\\SC_02_SHOT_310_Compositing_main_v003.1001.exr'
#                        ^  -^

好消息是,原始字符串是语法的一部分,而不是字符串的一部分。问题在于python解释字符串的方式。你可以做的一件事就是寻找这些有问题的符号并替换它们。以下是这个recipe的修改版本,可以处理大多数用例:

^{pr2}$

此函数将用原始等效符号替换任何误解的特殊符号。在

如果您调用前面定义的,则得到:

>>> raw(path)   
 'V:\\PRODUCTIONS\\SC_02\\SHOT_310\\compRender\\main\\v003\\2560x1440_exr\\SC_02_SHOT_310_Compositing_main_v003.1001.exr'

您必须根据需要手动添加更多分辨率值。在

相关问题 更多 >