对环境变量禁用python自动转义

2024-09-30 05:16:36 发布

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

我在python中遇到了以下问题,用于生成 Linux上的文件,正在Windows上读取。Python正在自动转义 字符串,因此当写入文件时,它们是不正确的。在

在shell中,我将环境变量设置为UNC路径:

camd011> setenv python_error "\\\\a\\b\\c"
camd011> echo $python_error 
\\a\b\c

然后我在python中检索它,因为它将用于生成C代码 以及一个“include”指令。但是,当我在python中检索值时:

^{pr2}$

正如您在上面看到的,它是自动转义的,因此当我将它写入文件时:

>>> f = open("temp.txt", "w")
>>> f.write(value)
>>> f.close()

最后我得到了双斜杠,而不是一个正确的UNC路径,以及代码 现在无法编译。文件:

\\\\a\\b\\c

也就是说,代码包含一个“include”,但现在失败了:

#include "\\\\a\\b\\c\file.h"

如何阻止python自动转义环境变量?在


Tags: 文件字符串代码echo路径includelinuxwindows
1条回答
网友
1楼 · 发布于 2024-09-30 05:16:36

这似乎是tcsh中引用和删除的问题。它与Python无关Python获取的变量与您可以使用env命令输出的变量相同。在

似乎在tcsh中,echo $FOO在打印之前去掉了$FOO的值。这似乎误导了您环境变量中的实际内容,因此您添加了额外的引用层。在

unaha-closp:~> setenv FOO "\\hello\world"
unaha-closp:~> echo $FOO
\hello\world
unaha-closp:~> env | grep FOO
FOO=\\hello\world
unaha-closp:~> python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.environ["FOO"]
\\hello\world
>>>
unaha-closp:~> bash
svk@unaha-closp:~$ echo $FOO
\\hello\world

正确的setenv命令应该是setenv python_error "\\a\b\c"。在

相关问题 更多 >

    热门问题