[英]Delcare multiple variables on one line using os.getenv in python?
[英]Python strips quotation marks when using os.getenv
我在使用不同的字符串數組時遇到困難。 以前,僅在屬性文件中存在字符串數組。 當前,系統在屬性文件中具有字符串數組,並在用戶的.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"
而
ENV_VAR_STRING_ARRAY="host1","host2","host3"
print os.getenv("ENV_VAR_STRING_ARRAY")
退貨
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"'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.