Python干扰

2024-10-03 13:28:45 发布

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

希望这次能快点。我有一个脚本用一个文件位置替换一个特定的值。位置似乎经常包含\n或n \in(这是因为当前目录在临时文件夹中),导致行中断或从行中完全删除,从而使文件夹位置无效。在

temp dir通常看起来像这样。在

C:\Users\Admin\AppData\Local\Temp\nsfCDAC.tmp\Firefox

是否有方法阻止\n或n \执行?任何帮助都是感激的,这里是我的换行脚本看起来像。提前谢谢!在

^{pr2}$

编辑:

他在这篇文章上评论的eryksun方法非常适合我!谢谢!我认为这个问题已经解决了,但你必须先发帖。在


Tags: 文件方法in脚本文件夹adminlocaldir
3条回答

如果在脚本中指定目录名,则应使用原始字符串文本,方法是在文本前面加上r。例如,r"C:\Users\Admin\AppData\Local\Temp\nsfCDAC.tmp\Firefox"。这将阻止反斜杠被解释。在

一般来说,Michael Hoffman的解决方案是很好的,如果出于任何原因,您需要字符串不要是原始的,您还可以添加一个额外的反斜杠:

"C:\Users\Admin\AppData\Local\Temp\\nsfCDAC.tmp"

额外的反斜杠会阻止\n(或任何其他类似的特殊函数)运行。例如(我相信,我这里没有模糊的回忆),如果你需要一个带有“and”的字符串,你可以:

^{pr2}$

内存中的字符串包含纯反斜杠字符。这不是意外地在Python端创建诸如换行之类的控制字符的问题。但是如果你要把它写进一个Javascript程序中,那么你必须避开反斜杠。例如:

>>> x = r"C:\Users\Admin\AppData\Local\Temp\nsfCDAC.tmp"

>>> print(x)
C:\Users\Admin\AppData\Local\Temp\nsfCDAC.tmp

所以在内存中,这个字符串只有一个反斜杠字符。让我们尝试将其编译为字符串并对其求值:

^{pr2}$

要解决此问题,可以将每个反斜杠替换为两个反斜杠:

>>> x = x.replace('\\', '\\\\')

>>> print(x)
C:\\Users\\Admin\\AppData\\Local\\Temp\\nsfCDAC.tmp

>>> print(eval("'%s'" % x))
C:\Users\Admin\AppData\Local\Temp\nsfCDAC.tmp

相关问题 更多 >