2015-05-22 104 views
0

當我打印下列信息時它看起來非常難看。 文本顯示非常長,您無法真正閱讀它。Python輸出格式

代碼:

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')] 

在一個長行!有沒有辦法來過濾輸出或在多行顯示它?

謝謝你幫助我:)

+7

[pprint(https://docs.python.org/3/library/pprint.html)是你的朋友。 – miku

回答

1

psutil.disk_partitinos()給你的分區上您systme列表。

在該列表中的每個元素是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

你可以這樣做:

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') 
+0

感謝您的幫助! – tartaarsap