Python输出格式

时间:2015-05-22 12:07:00

标签: python format

当我打印以下信息时看起来真的很难看。 文本显示很长,你无法真正阅读它。

代码:

import psutil
print("Disk: ", psutil.disk_partitions())

我得到的输出是:

Disk:  [sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='', opts='cdrom'), sdiskpart(device='E:\\', mountpoint='E:\\', fstype='', opts='cdrom'), sdiskpart(device='F:\\', mountpoint='F:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='H:\\', mountpoint='H:\\', fstype='NTFS', opts='rw,removable')]

在一条长线上!有没有办法过滤输出或在多行显示它?

感谢您帮助我:)

2 个答案:

答案 0 :(得分:1)

psutil.disk_partitinos()为您提供系统中的分区列表。

该列表中的每个元素都是sdiskpart的实例,它是namedtuple,具有以下属性:

['count', 'device', 'fstype', 'index', 'mountpoint', 'opts']

必须处理此列表并使用str.format()print()格式化并以您想要的方式显示它。

请参阅psutil文档。

以“更好的方式”显示“磁盘信息”的简单功能可以简单到:

示例:

from psutil import disk_partitions


def diskinfo():
    for i, disk in enumerate(disk_partitions()):
        print "Disk #{0:d} {1:s}".format(i, disk.device)
        print " Mount Point: {0:s}".format(disk.mountpoint)
        print " File System: {0:s}".format(disk.fstype)
        print " Options: {0:s}".format(disk.opts)


diskinfo()

<强>输出:

bash-4.3# python /app/foo.py
Disk #0 /dev/mapper/docker-8:1-2762733-bdb0f27645efd726d69c77d0cd856d6218da5783b2879d9a83a797f8b896b4be
 Mount Point: /
 File System: ext4
 Options: rw,relatime,discard,stripe=16,data=ordered

答案 1 :(得分:1)

你可以这样做:

print("Disks:")
for disk in psutil.disk_partitions()):
    print(disk)

这应该是这样的:

Disks:
sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed')
sdiskpart(device='D:\\', mountpoint='D:\\', fstype='', opts='cdrom')
sdiskpart(device='E:\\', mountpoint='E:\\', fstype='', opts='cdrom')
sdiskpart(device='F:\\', mountpoint='F:\\', fstype='NTFS', opts='rw,fixed')
sdiskpart(device='H:\\', mountpoint='H:\\', fstype='NTFS', opts='rw,removable')