簡體   English   中英

使用os.getenv時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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM