通過在Python中使用程序編程範式,我寫了一個程序,該程序逐行讀取文件的輸入(如File.txt)並將其打印出來。下面是實施例:如何從Python中的多行Tkinter文本框中讀取輸入(逐行)?
腳本:
import fileinput
for line in fileinput.input(r'D:\File.txt'):
line = line.replace(" ", "")
line = line[0:-1]
print(line)
結果:
注意:如果例如 「file.txt的」 含有2行,第一行作爲 'LINE1' 和第二line as'line2',then output is:
line1
line2
相同的結果我想通過面向對象的pro通過使用「Tkinter Multiline TextBox」而不是文件(在上面的示例File.txt中)來格式化Paradigm。
我有一個創建一個多Tkinter的文本框下面的代碼:
import tkinter as tki # Tkinter -> tkinter in Python3
class App(object):
def __init__(self):
self.root = tki.Tk()
# create a Frame for the Text and Scrollbar
txt_frm = tki.Frame(self.root, width=200, height=200)
txt_frm.pack(fill="both", expand=True)
# ensure a consistent GUI size
txt_frm.grid_propagate(False)
# implement stretchability
txt_frm.grid_rowconfigure(0, weight=1)
txt_frm.grid_columnconfigure(0, weight=1)
# create a Text widget
self.txt = tki.Text(txt_frm, borderwidth=3, relief="sunken")
self.txt.config(font=("consolas", 12), undo=True, wrap='word')
self.txt.grid(row=0, column=0, sticky="nsew", padx=2, pady=2)
# create a Scrollbar and associate it with txt
scrollb = tki.Scrollbar(txt_frm, command=self.txt.yview)
scrollb.grid(row=0, column=1, sticky='nsew')
self.txt['yscrollcommand'] = scrollb.set
def retrieve_input():
input = self.txt.get("0.0",END)
print(input)
app = App()
app.root.mainloop()
app.retrieve_input()
現在我的問題是,一旦我運行上面的代碼中的「Tkinter的多行文本框」快到了,我進入了4條線Tkinter的文本框爲:
ABC
XYZ
PQR
QAZ
但我沒有得到確切想法/執行情況,我怎麼能讀取這些線形成Tkinter的文本框一個接一個地在我的程序中使用它們進行進一步的處理。
我使用的Python版本是3.0.1。 請幫忙...
Text.get('0.0')只返回第一個字符。 – falsetru
你確定嗎? doc告訴我,如果省略第二個參數,它將在第一個參數後返回字符。我會試試看看。@ falsetru – zhangyangyu
我自己試了一下。你參考了哪些文件? – falsetru