<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 概述 結合dmidecode獲取系統信息。 此處僅獲取System Informaion段的部分信息 方案1 檢測空行 只有'\n' 方案2 檢測是否有新段落開始,line[0].strip() #### 方案1 * 檢測到System Informaion,開啟內層循環,使用列表記錄相關信息,檢測到本段結束,跳出循環并返回值 * 重點:開始記錄System Informaion容易,本段結束時如何跳出,才是重點 ```python #!/usr/bin/env python #coding: utf-8 from subprocess import Popen, PIPE def getDimSysInfoList(): """獲取System Information部分內容列表 輸入:無 輸出:dmi列表""" dmi_sysinfo_list = [] p = Popen(['dmidecode'], stdout=PIPE) dmi_info = p.stdout # 使用文件迭代器按行進行遍歷 for line in dmi_info: if line.startswith('System Information'): # 檢測到System Information后,接著上面的for循環繼續遍歷文件 for line in dmi_info: # 重點:可迭代對象dmi_info,接著外層循環的位置繼續迭代 # 在這個for循環中,檢測到'\n',說明System Information結束,跳出此層for循環 if line == '\n': break else: dmi_sysinfo_list.append(line.strip()) # 內層的for循環結束,函數返回結果 return dmi_sysinfo_list def getInfo(): """獲取System Information并重新組織為字典""" dmi_sysinfo_list = getDimSysInfoList() # 列表解析和字典解析的結合 dmidict = {k: v.strip() for k,v in [item.split(':') for item in dmi_sysinfo_list]} # 獲取指定部分信息字典 dmidict = {item: dmidict[item] for item in ['Manufacturer','Product Name', 'Version']} return dmidict if __name__ == '__main__': dmidict = getInfo() for k, v in dmidict.iteritems(): print '%s: %s' % (k, v) ``` #### 方案2 ```python #!/usr/bin/env python # -*- coding:utf8 -*- from subprocess import Popen,PIPE def getDmiInfo(): p = Popen(['dmidecode'],stdout=PIPE) dmi_info = p.stdout.read() return dmi_info def getSysInfoList(s): sys_info_list = [] # 標志位:是否開始儲存數據 sys_start = False # 去除列表中為空的元素 dmi_list = [i for i in s.split('\n') if i] for line in dmi_list: if line.startswith('System Information'): sys_start = True continue if sys_start: # 檢測到有新段落開始,則跳出for循環 if line[0].strip(): break else: sys_info_list.append(line) return sys_info_list def getSysinfoDict(): dmi_dic = {} dmi_info = getDmiInfo() sys_info_list = getSysInfoList(dmi_info) sys_info_dict = dict([item.strip().split(': ') for item in sys_info_list]) sys_info_dict = {item: sys_info_dict[item] for item in ['Manufacturer','Product Name', 'Version']} return sys_info_dict if __name__ == "__main__": print getSysinfoDict() ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看