第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

帶有修改環(huán)境的Python子進(jìn)程/Popen

帶有修改環(huán)境的Python子進(jìn)程/Popen

繁華開滿天機(jī) 2019-07-27 15:15:45
帶有修改環(huán)境的Python子進(jìn)程/Popen我認(rèn)為,運(yùn)行帶有稍微修改環(huán)境的外部命令是非常常見的情況。我就是這么做的:import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]subprocess.Popen(my_command, env=my_env)我有一種直覺,認(rèn)為有更好的方法,它看起來還好嗎?
查看完整描述

3 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊

我認(rèn)為os.environ.copy()如果您不打算修改當(dāng)前進(jìn)程的os.environ,情況會更好:

import subprocess, os
my_env = os.environ.copy()my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]subprocess.Popen(my_command, env=my_env)


查看完整回答
反對 回復(fù) 2019-07-28
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

這取決于問題是什么。如果要克隆和修改環(huán)境,一個(gè)解決方案可以是:

subprocess.Popen(my_command, env=dict(os.environ, PATH="path"))

但是,這在某種程度上取決于替換的變量是有效的python標(biāo)識符,而這些標(biāo)識符通常是(您經(jīng)常遇到非字母數(shù)字+下劃線或以數(shù)字開頭的變量的環(huán)境變量名稱嗎?)

否則,您可以編寫如下內(nèi)容:

subprocess.Popen(my_command, env=dict(os.environ, 
                                      **{"Not valid python name":"value"}))

在非常奇怪的情況下(在環(huán)境變量名稱中是否經(jīng)常使用控制代碼或非ascii字符?)環(huán)境的關(guān)鍵是bytes你甚至不能(在python 3上)使用那個(gè)構(gòu)造。

正如您所看到的,這里使用的技術(shù)(特別是第一種)在環(huán)境密鑰上的好處通常是有效的python標(biāo)識符,而且在編碼時(shí)也知道(在編碼時(shí)),第二種方法存在問題。如果情況并非如此,你應(yīng)該去找另一種方法.



查看完整回答
反對 回復(fù) 2019-07-28
  • 3 回答
  • 0 關(guān)注
  • 474 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號