คำถามติดแท็ก popen

8
Python subprocess / Popen พร้อมสภาพแวดล้อมที่ถูกดัดแปลง
ฉันเชื่อว่าการรันคำสั่งภายนอกที่มีสภาพแวดล้อมที่ปรับเปลี่ยนเล็กน้อยเป็นกรณีทั่วไป นั่นเป็นวิธีที่ฉันมักจะทำ: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) ฉันมีความรู้สึกว่ามีวิธีที่ดีกว่า; มันดูไม่เป็นไร
285 python  subprocess  popen 

1
ฉันจะระบุไดเรกทอรีทำงานสำหรับป๊อป
มีวิธีการระบุไดเรกทอรีทำงานของคำสั่งใน Python subprocess.Popen()หรือไม่? ตัวอย่างเช่น: Popen('c:\mytool\tool.exe', workingdir='d:\test\local') สคริปต์ Python ของฉันอยู่ใน C:\programs\python เป็นไปได้ที่จะทำงานC:\mytool\tool.exeในไดเรกทอรีD:\test\localหรือไม่ ฉันจะตั้งค่าไดเรกทอรีการทำงานสำหรับกระบวนการย่อยได้อย่างไร
187 python  subprocess  popen 

2
ความแตกต่างระหว่างโพรเซสย่อย Popen และการโทร (ฉันจะใช้ได้อย่างไร)
ฉันต้องการเรียกโปรแกรมภายนอกจาก Python ฉันใช้ทั้งสองPopen()และcall()ทำสิ่งนั้น ความแตกต่างระหว่างสองคืออะไร เป้าหมายเฉพาะของฉันคือการเรียกใช้คำสั่งต่อไปนี้จาก Python ฉันไม่แน่ใจว่าการเปลี่ยนเส้นทางทำงานอย่างไร ./my_script.sh > output ฉันอ่านเอกสารและมันบอกว่าcall()เป็นฟังก์ชั่นอำนวยความสะดวกหรือฟังก์ชั่นทางลัด เราสูญเสียพลังงานโดยการใช้call()แทนPopen()หรือไม่?
178 python  subprocess  popen 

3
วิธีใช้กระบวนการย่อย popen Python
เนื่องจาก os.popen ถูกแทนที่ด้วย subprocess.popen ฉันจึงสงสัยว่าจะแปลงได้อย่างไร os.popen('swfdump /tmp/filename.swf/ -d') ไปยัง subprocess.popen () ฉันเหนื่อย: subprocess.Popen("swfdump /tmp/filename.swf -d") subprocess.Popen("swfdump %s -d" % (filename)) # NOTE: filename is a variable # containing /tmp/filename.swf แต่ฉันเดาว่าฉันเขียนสิ่งนี้ไม่ถูกต้อง ความช่วยเหลือใด ๆ จะได้รับการชื่นชม ขอบคุณ
102 python  subprocess  popen 

4
เหตุใด Popen.communicate () จึงส่งคืน b'hi \ n 'แทน' hi '
มีใครช่วยอธิบายได้ไหมว่าทำไมผลลัพธ์ที่ฉันต้องการคือ "hi" จึงมีตัวอักษร "b" และตามด้วยขึ้นบรรทัดใหม่ ฉันใช้Python 3.3 >>> import subprocess >>> print(subprocess.Popen("echo hi", shell=True, stdout=subprocess.PIPE).communicate()[0]) b'hi\n' 'b' พิเศษนี้จะไม่ปรากฏหากฉันรันด้วย python 2.7
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.