gpt4 book ai didi

Python:subprocess.check_output()

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:07 25 4
gpt4 key购买 nike

我正在尝试为我正在编写的 configure.py 脚本检索 CPU 功能列表。在 shell 中,我执行如下操作:

$ cat /proc/cpuinfo|grep flags|head -1|cut -d\: -f2
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

我天真的尝试是写:

features = subprocess.check_output("cat /proc/cpuinfo|grep flags|head -1|cut -d\: -f2").split()

但是我得到了一些错误:

File "./configure.py", line 14, in <module>
features = subprocess.check_output("cat /proc/cpuinfo|grep flags|head -1|cut -d\: -f2").split()
File "/usr/lib/python2.7/subprocess.py", line 566, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

最佳答案

您必须为不同的参数提供一个字符串列表或一个字符串元组。此外,管道不是程序参数。

查看这篇文章以了解管道是如何完成的: Python subprocess command with pipe

更好的选择是使用:

os.popen("cat /proc/cpuinfo | grep flags | head -1 | cut -d\: -f2").read().split()

'|'前后也使用空格提高可读性。还要注意 grep flags/proc/cpuinfo 等同于 cat/proc/cpuinfo | grep 标志

编辑

如前所述,os.popen 已弃用,请改用它:

subprocess.check_output("cat /proc/cpuinfo | grep flags | head -1 | cut -d\: -f2", shell=True).split()

关于Python:subprocess.check_output(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27292864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com