[英]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.