python os.system 执行 ls命令时 无法接收内容
时间: 2024-03-08 09:46:39 浏览: 143
是的,os.system 函数执行命令时无法直接获取命令的输出结果。如果需要获取命令的输出结果,可以使用 subprocess 模块中的 Popen 函数和 communicate 方法来实现,例如:
```python
import subprocess
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
output, _ = p.communicate()
print(output.decode('utf-8'))
```
这里创建了一个 Popen 对象来执行 ls -l 命令,并将输出重定向到管道。然后使用 communicate 方法来等待命令执行完成并获取输出结果。最后将输出结果转换为 UTF-8 编码的字符串并打印出来。
注意:在使用 Popen 对象时,我们需要将 stdout 参数设置为 subprocess.PIPE,这样才能将命令的输出重定向到管道。同时,我们还需要使用 communicate 方法获取命令的输出结果。
相关问题
如何接收os.system 执行的ls命令的内容
要接收 os.system 执行的 ls 命令的内容,可以使用 subprocess 模块中的 subprocess.check_output 函数,例如:
```python
import subprocess
output = subprocess.check_output(['ls', '-l'])
print(output.decode('utf-8'))
```
这会执行 ls -l 命令并将其输出作为字符串返回,我们可以使用 decode 函数将其转换为 UTF-8 编码的字符串并打印出来。
python os.system命令
os.system() 是 Python 中的一个内置函数,用于在 Python 脚本中执行系统命令。它接收一个字符串参数,表示要执行的命令,并返回执行结果的状态码。
例如:
```python
import os
result = os.system("ls")
print(result)
```
这段代码会执行系统命令 "ls",并将执行结果的状态码赋值给变量 "result"。
注意,os.system() 函数不会返回命令的输出结果,如果需要获取输出结果,应使用其他函数,比如 subprocess.run()。
阅读全文