Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在使用os.getenv时会去掉引号_Python_Arrays_String_Environment Variables - Fatal编程技术网

Python在使用os.getenv时会去掉引号

Python在使用os.getenv时会去掉引号,python,arrays,string,environment-variables,Python,Arrays,String,Environment Variables,我在使用不同的字符串数组时遇到困难。以前,只有在属性文件中才有字符串数组。目前,系统在属性文件中有字符串数组,并在用户的.bashrc文件中设置为环境变量。在属性和.bashrc文件中,字符串数组如下所示 STRING_ARRAY="host1","host2","host3" 以前,有一对简单的for循环,用于读取一系列字符串数组并将它们传递到某个函数中 for k in ("STRING_ARRAY","SOME_OTHER_ARRAY"): globals()[k] = globa

我在使用不同的字符串数组时遇到困难。以前,只有在属性文件中才有字符串数组。目前,系统在属性文件中有字符串数组,并在用户的.bashrc文件中设置为环境变量。在属性和.bashrc文件中,字符串数组如下所示

STRING_ARRAY="host1","host2","host3"
以前,有一对简单的for循环,用于读取一系列字符串数组并将它们传递到某个函数中

for k in ("STRING_ARRAY","SOME_OTHER_ARRAY"):
   globals()[k] = globals()[k].replace("\"",'').split(",")

for stringarray,otherarray in zip(STRING_ARRAY, SOME_OTHER_ARRAY):
   someFunction(stringarray,otherarray)
这很有效。当一些变量从传递到python脚本和环境变量的属性文件中移出时,就会出现问题。似乎在使用os.getenv(“HOSTSTRINGARRAY”)或os.environ[“HOSTSTRINGARRAY”]时,os库会返回字符串数组,但不带引号

PROPERTIES_STRING_ARRAY="host1","host2","host3"
print PROPERTIES_STRING_ARRAY
返回

"host1","host2","host3"
host1,host2,host3
鉴于

ENV_VAR_STRING_ARRAY="host1","host2","host3"
print os.getenv("ENV_VAR_STRING_ARRAY")
返回

"host1","host2","host3"
host1,host2,host3
这是一个问题,因为我似乎无法混合和匹配以下两种类型的变量

for k in ("POPERTIES_STRING_ARRAY",os.getenv("ENV_VAR_OTHER_ARRAY")):
   globals()[k] = globals()[k].replace("\"",'').split(",")

for stringarray,otherarray in zip(STRING_ARRAY, os.getenv("ENV_VAR_OTHER_ARRAY")):
   someFunction(stringarray,otherarray)

因此,我的问题是,如何让os.getenv或os.environ返回一个逗号分隔的字符串列表,而不去掉包含单个字符串的引号?

使用
'
单引号来声明字符串。现在应该可以了

ENV_VAR_STRING_ARRAY='"host1","host2","host3"'

这确实解决了单个变量返回方式的问题,但是,我得到的错误仍然没有消失。事实证明,我的错误的最终来源是环境变量实际上不是全局的,所以我的拆分函数在全局查找它们时出错了。不过,这确实回答了我的具体问题,所以我将接受答案。