Python中使用commands模块的getoutput()函数获取命令行输出的实例讲解
发布时间:2024-01-15 23:56:25
在Python中,我们可以使用commands模块的getoutput()函数来获取命令行输出。getoutput()函数接受一个命令字符串作为参数,并返回命令执行后的输出字符串。
下面是一个示例,演示如何使用getoutput()函数来获取命令行输出:
import commands
def get_file_size(file_path):
# 使用命令行命令来获取文件大小
command = 'du -sh ' + file_path
output = commands.getoutput(command)
# 解析输出字符串,提取文件大小
size = output.split()[0]
return size
# 调用函数来获取文件大小
file_path = '/path/to/file.txt'
file_size = get_file_size(file_path)
print('文件大小:', file_size)
在上面的示例中,我们定义了一个get_file_size()函数,该函数接受一个文件路径作为参数,并使用命令行命令du -sh来获取该文件的大小。然后,我们使用getoutput()函数来执行命令,并将输出字符串保存到output变量中。
接下来,我们解析输出字符串,提取文件大小。这里我们假设输出的字符串形如 '54M /path/to/file.txt',我们可以使用split()函数将字符串切割成一个列表,并取列表的 个元素作为文件大小。
最后,我们将文件大小打印出来。
需要注意的是,commands模块在Python 2.x中是可用的,但在Python 3.x中已经被subprocess模块替代。因此,在Python 3.x中,我们应该使用subprocess模块来执行命令行命令,并获取输出。
下面是相应的示例,演示如何使用subprocess模块来获取命令行输出:
import subprocess
def get_file_size(file_path):
# 使用命令行命令来获取文件大小
command = 'du -sh ' + file_path
# 执行命令,并捕获输出
output = subprocess.getoutput(command)
# 解析输出字符串,提取文件大小
size = output.split()[0]
return size
# 调用函数来获取文件大小
file_path = '/path/to/file.txt'
file_size = get_file_size(file_path)
print('文件大小:', file_size)
这里,我们直接使用subprocess.getoutput()函数来执行命令行命令,并获取输出字符串。其余部分与前面的示例相同。
总结:在Python中,我们可以使用commands模块的getoutput()函数(Python 2.x)或者使用subprocess模块的getoutput()函数(Python 3.x)来获取命令行输出。这些函数可以帮助我们在Python代码中执行命令,获取输出,并进行进一步的处理。
