我要打开一个类,从该类中的txt文件中读取信息,然后再打开另一个类。 我收到未定义全局名称“自我”的错误。
fileName = "tv.info"
info = 0
class FileHandling:
def __init__(self, session):
self.ReadFile()
session.open(InfoScreen)
def ReadFile(self):
global info
if os.path.exists(fileName):
info = 1
f = open(fileName, "r")
for line in f:
if line.strip(): # if line is not an empty line
...
...
...
f.close()
list = [channel, freq, tp, pol, symbfreq, fec]
for i in list:
if ('\n' in i):
i = i.replace("\n","") # strip linebreak
self['channel'] = Label(_(channel))
self['freq'] = Label(_(freq))
self['tp'] = Label(_(tp))
self['pol'] = Label(_(pol))
self['symbfreq'] = Label(_(symbfreq))
self['fec'] = Label(_(fec))
class InfoScreen(Screen):
if info == 1:
...
...
def main(session,**kwargs):
self.session.open(FileHandling)
答案 0 :(得分:0)
@matineau:我试图发布我拥有的代码,但是从这里得到一个消息,该帖子主要由代码组成。我将在下面再次尝试:
from Screens.Screen import Screen
from Components.Label import Label
import os
fileName = "tv.info"
info = 0
class FileHandling:
def __init__(self, session):
self.ReadFile()
session.open(InfoScreen)
def ReadFile(self):
global info
if os.path.exists(fileName):
info = 1
f = open(fileName, "r")
for line in f:
if line.strip(): # if line is not an empty line
if "channel" in line:
channel = line.split(": ")[-1] # split line at ":"
if "freq" in line:
freq = line.split(": ")[-1]
if "tp" in line:
tp = line.split(": ")[-1]
if "pol" in line:
pol = line.split(": ")[-1]
if "symbfreq" in line:
symbfreq = line.split(": ")[-1]
if "fec" in line:
fec = line.split(": ")[-1]
f.close()
list = [channel, freq, tp, pol, symbfreq, fec]
for i in list:
if ('\n' in i): # strip linebreak
i = i.replace("\n","")
self['channel'] = Label(_(channel))
self['freq'] = Label(_(freq))
self['tp'] = Label(_(tp))
self['pol'] = Label(_(pol))
self['symbfreq'] = Label(_(symbfreq))
self['fec'] = Label(_(fec))
class InfoScreen(Screen):
if info == 1:
skin = """
<screen size="700,455" title=" ">
<eLabel text="[ CHANNELINFO ]" position="center,10" size="900,55"/>
<eLabel position="20,60" size="1160,4" />
<eLabel text="Sender: " position="20,90" size="300,55" />
<eLabel text="Frequency: " position="20,150" size="300,55" />
<eLabel text="Transponder: " position="20,210" size="300,55" />
<eLabel text="Polarisation: " position="20,270" ize="300,55" />
<eLabel text="Symbol freq.: " position="20,330" size="300,55" />
<eLabel text="FEC: " position="20,390" size="300,55" />
<widget name="channel" position="260,90" size="300,55" />
<widget name="freq" position="260,150" size="300,55" />
<widget name="tp" position="260,210" size="300,55" />
<widget name="pol" position="260,270" size="300,55" />
<widget name="symbfreq" position="330,270" size="300,55" />
<widget name="fec" position="260,390" size="300,55" />
</screen>"""
else:
skin = """
<screen size="700,60" title=" ">
<eLabel text="file tv.info not found !" position="center,0" size="700,60" />
</screen>"""
def __init__(self, session):
Screen.__init__(self, session)
self.session = session
def main(session,**kwargs):
self.session.open(FileHandling)