簡體   English   中英

Python os.system output 值 '0' 在 ListBox

[英]Python os.system output value '0' in ListBox

我是 Python 編程(Windows)的新手,現在我遇到了問題。

我正在嘗試打印以下內容:

def volc():
        os.system(r'Vol C:')
print(volc)

因此,它應該可以正常工作:它打印 C:控制台中的驅動器序列號。

但問題是我希望它可以在 ListBox 中看到。 如果我嘗試:

def volc():
        os.system(r'Vol C:')
Lb1.insert(1, volc)

我在列表框中將值設為“0”。

我究竟做錯了什么?

提前致謝。


import tkinter as tk
from tkinter import *
import subprocess
from subprocess import check_output
import os

root = tk.Tk()
canvas1 = tk.Canvas(root, width = 300, height = 300)
canvas1.pack()

def volc():
        command = "Vol C:"
        output = check_output(command.split())        
def get_info():
        response = messagebox.askokcancel('Please wait... ', 'Accessing current Hard Drive IDs... Please click "OK". ')
        if response == True:       
            Lb1.insert(6, volc)

button1 = tk.Button (root, text='Get all the Hard Drive IDs ',command=get_info,bg='green',fg='white')
canvas1.create_window(150, 200, window=button1)

root.mainloop()

其中有一部分。 rest 並不重要。

在 python 中, os.system()將執行命令並返回命令的返回碼,而不是命令的 output。 os.system python 文檔

您需要使用子進程之類的東西來獲取命令的 output 。 例如

from subprocess import check_output

def volc():
    command = "Vol C:"
    return check_output(command.split())

def get_info():
    ...
    cmd_output = volc()
    Lb1.insert(6, cmd_output)

有關其他 python 版本,請參閱此答案

根據OP提供的新信息修改答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM