wxpython 按行反向读取Txt文件
import wx
app=wx.App()
win=wx.Frame(None,-1,title="History",size=(535,582))
bkg=wx.Panel(win)
filename=wx.TextCtrl(bkg,-1,pos=(105,40),size=(250,30))
contents=wx.TextCtrl(bkg,-1,pos=(5,70),size=(525,510),style=wx.TE_MULTILINE|wx.HSCROLL)
openbutton=wx.Button(bkg,-1,label='Open',pos=(425,10),size=(80,50))
def openfile(evt):
filepath=filename.GetValue()
fopen=open(filepath,'r')
contents.SetValue(fopen.read())
openbutton.Bind(wx.EVT_BUTTON,openfile)
win.Show()
app.MainLoop()
这个是正常读出,如果我想按行反向读取到contents,应如何做?
是先取行数再反着打印出来,还是有什么参数能直接定义反向读取。
向各位求解……
------解决思路----------------------
import wx
app=wx.App()
win=wx.Frame(None,-1,title="History",size=(535,582))
bkg=wx.Panel(win)
filename=wx.TextCtrl(bkg,-1,pos=(105,40),size=(250,30))
contents=wx.TextCtrl(bkg,-1,pos=(5,70),size=(525,510),style=wx.TE_MULTILINE
------解决思路----------------------
wx.HSCROLL)
openbutton=wx.Button(bkg,-1,label='Open',pos=(425,10),size=(80,50))
def openfile(evt):
filepath=filename.GetValue()
fopen=open(filepath,'r')
fdata=fopen.readlines()
fdata.sort(reverse=True)
setData="".join(fdata)
contents.SetValue(setData)
openbutton.Bind(wx.EVT_BUTTON,openfile)
win.Show()
app.MainLoop()
------解决思路----------------------
引用:Quote: 引用:f = file('test.txt','r')
while True:
line = f.readline()
if len(line) == 0:
break
print line[::-1]
f.close()
假如要读取的test.txt文件内容如下:
Python
Perl
Java
Shell
输出结果:
D:\Work\Python>python using_file.py
nohtyP
lreP
avaJ
llehS
用你的例子,我想要的结果是按行反向输出到contents.SetValue,如:
Shell
Java
Perl
Python
也就是从最后一行开始读,到第一行结束。
file1 = file('test.txt','r')
list1 = [] #用一个空列表用于存放每行的内容
while True:
line = file1.readline()
list1.append(line.strip())
if len(line) == 0:
break
for l in list1[::-1]: #反向遍历,然后依次读取出来
print l
file1.close()
------解决思路----------------------
可以读取一行后,往头部插入,这样也是反向...
...
fopen=open(filepath,'r')
for line in fopen:
contents.SetInsertionPoint(0)
contents.WriteText(line)
....