나는 사용자 입력을 기반으로 구성 파일을 생성하는 매우 간단한 응용 프로그램을 작성했습니다. 그러나 StringIO에서 실제 conf 파일로 데이터가 덤프되는 순서는 파일을 사용하는 프로그램에 중요합니다. 내 코드에서이 문제를 해결 한 방법은 위에서 아래로의 데이터 입력 모델이었습니다. 그러나 사용자가 순서에 맞지 않는 데이터를 입력하면 프로그램이 실패하거나 결과 파일이 쓸모 없게됩니다. 임의의 데이터 입력 순서를 재조정하고 StringIO의 데이터가 특정 순서로 삽입되는지 확인하는 방법이 있습니까? 데이터가 StringIO에 입력되는 순서를 어떻게 만드나요? - Python
는 현재 코드는 다음과 같습니다 (그리고 너희들의 도움이 많은이 단계에 도착!) 당신은 출력 생성에서 데이터 수집을 분리 할 필요가 self.output = StringIO.StringIO()
context = self.toolbar.get_style_context()
context.add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
def on_servername_activate(self, widget):
output = StringIO.StringIO()
servername = widget.get_text()
self.output.write("USHARE_NAME="+servername+'\n')
def on_netif_changed(self, widget):
netif = widget.get_active_text()
self.output.write("USHARE_IFACE="+netif+'\n')
def on_port_activate(self, widget):
port = widget.get_text()
self.output.write("USHARE_PORT="+port+'\n')
def on_telprt_activate(self, widget):
telprt = widget.get_text()
self.output.write("USHARE_TELNET_PORT="+telprt+'\n')
def on_dirs_activate(self, widget):
dirs = widget.get_text()
self.output.write("USHARE_DIR="+dirs+'\n')
def on_iconv_toggled(self, widget):
iconv = widget.get_active()
if iconv == True:
self.output.write("USHARE_OVERRIDE_ICONV_ERR="+"True"+'\n')
else:
self.output.write("USHARE_OVERRIDE_ICONV_ERR="+"False"+'\n')
def on_webif_toggled(self, widget):
webif = widget.get_active()
if webif == True:
self.output.write("USHARE_ENABLE_WEB="+"yes"+'\n')
else:
self.output.write("USHARE_ENABLE_WEB="+"no"+'\n')
def on_telif_toggled(self, widget):
telif = widget.get_active()
if telif == True:
self.output.write("USHARE_ENABLE_TELNET="+"yes"+'\n')
else:
self.output.write("USHARE_ENABLE_TELNET="+"no"+'\n')
def on_xbox_toggled(self, widget):
xbox = widget.get_active()
if xbox == True:
self.output.write("USHARE_ENABLE_XBOX="+"yes"+'\n')
else:
self.output.write("USHARE_ENABLE_XBOX="+"no"+'\n')
def on_dlna_toggled(self, widget):
dlna = widget.get_active()
if dlna == True:
self.output.write("USHARE_ENABLE_DLNA="+"yes"+'\n')
else:
self.output.write("USHARE_ENABLE_DLNA="+"no"+'\n')
def on_commit_clicked(self, widget):
commit = self.output.getvalue()
logfile = open('/home/boywithaxe/Desktop/ushare.conf','w')
logfile.write(commit)
def on_endprogram_clicked(self, widget):
sys.exit(0)
왜 코드를 읽는 코드를 수정할 수 없습니까? –