Files
python-tests/subprocess_test_2.py
T
2026-05-23 23:58:53 +08:00

54 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
import locale
import os
import subprocess
if __name__ == "__main__":
print("*" * 100)
print(locale.getpreferredencoding())
print("*" * 100)
result = subprocess.run(
['env'],
capture_output=True,
)
result.check_returncode()
print('return code:', result.returncode)
print(result.stdout)
print("*" * 100)
result = subprocess.run(
['env'],
capture_output=True,
text=True,
encoding='utf-8',
)
result.check_returncode()
print('return code:', result.returncode)
print(f"{result.stdout[:100]}******")
print("*" * 100)
subprocess.run(
['env'],
env={"NAME": "hatter"},
)
print("*" * 100)
my_env = os.environ.copy()
my_env["NAME"] = "hatter"
subprocess.run(
['sleep', '5'],
env=my_env,
check=True, # 非 0 返回时抛出异常
)
print("*" * 100)
subprocess.Popen(
['sleep', '50'],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
preexec_fn=os.setpgrp # 让子进程独立,即使当前脚本挂了它也继续运行
)
print("*" * 100)