吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1289|回复: 9
收起左侧

[已解决] 求教Python大佬调用问题

[复制链接]
zoenbo 发表于 2021-5-10 22:44
本帖最后由 zoenbo 于 2021-5-11 10:50 编辑

想让PY里调用同目录下config.pyc或者config.json或者其他python可以直接读取的文件内容,求助大佬们...
主要目的就是在打包成EXE后,有些内容需要改,不用再次打包

1。我想把“组合框1”里的'北京', '上海', '天津'选项放在文件里,choices里的选项从文件里读取
2。想把“组合框2”里的'男', '女', '老', '少'选项放在文件里,choices里的选项从文件里读取
3。“组合框3”里的'美女', '帅哥', '丑八怪'选项放在文件里,choices里的选项从文件里读取
4。'''注释那块想调用一段代码,比如在文件里

    def on_combobox(self, event):

        return event.GetSelection() + 1

[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-
import wx

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title='TEST', size=(400, 300),name='frame',style=541072384)
        self.启动窗口 = wx.Panel(self)
        self.Centre()
        self.组合框1 = wx.ComboBox(self.启动窗口,value='',pos=(34, 26),name='comboBox',choices=['北京', '上海', '天津'],style=16)
        self.组合框1.SetSize((112, 23))
        self.组合框2 = wx.ComboBox(self.启动窗口,value='',pos=(34, 71),name='comboBox',choices=['男', '女', '老', '少'],style=16)
        self.组合框2.SetSize((116, 26))
        self.组合框3 = wx.ComboBox(self.启动窗口,value='',pos=(37, 114),name='comboBox',choices=['美女', '帅哥', '丑八怪'],style=16)
        self.组合框3.SetSize((119, 27))

'''
想在这块加一段代码,从文件里读取
'''

class myApp(wx.App):
    def  OnInit(self):
        self.frame = Frame()
        self.frame.Show(True)
        return True

if __name__ == '__main__':
    app = myApp()
    app.MainLoop()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

咸鱼灭 发表于 2021-5-10 22:53
参数放在JSON文件里,然后用load()读取就行了
 楼主| zoenbo 发表于 2021-5-10 23:13
咸鱼灭 发表于 2021-5-10 22:53
参数放在JSON文件里,然后用load()读取就行了

大佬,JSON文件是不是这样写呢?
{"AA": "'北京', '上海', '天津'", "BB": "'男', '女', '老', '少'", "CC": "'美女', '帅哥', '丑八怪'","DD":"    def on_combobox(self, event):
        return event.GetSelection() + 1"}

在PY里该怎么调用这些值呢?
seeyou_shj 发表于 2021-5-11 08:26
查一下exec函数的用法。例子:
>>> data = "a=5"
>>> exec(data)
>>> a
5
>>>
Loker 发表于 2021-5-11 08:39
[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-
import json

import wx


class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title='TEST', size=(400, 300), name='frame', style=541072384)

        self.Config = {}
        self.initJsonObj()

        self.启动窗口 = wx.Panel(self)
        self.Centre()
        self.组合框1 = wx.ComboBox(self.启动窗口, value='', pos=(34, 26), name='comboBox', choices=self.Config["组合框1"],
                                style=16)
        self.组合框1.SetSize((112, 23))
        self.组合框2 = wx.ComboBox(self.启动窗口, value='', pos=(34, 71), name='comboBox', choices=self.Config["组合框2"],
                                style=16)
        self.组合框2.SetSize((116, 26))
        self.组合框3 = wx.ComboBox(self.启动窗口, value='', pos=(37, 114), name='comboBox', choices=self.Config["组合框3"],
                                style=16)
        self.组合框3.SetSize((119, 27))

    def initJsonObj(self):
        # 设置以utf-8解码模式读取文件,encoding参数必须设置,否则默认以gbk模式读取文件,当文件中包含中文时,会报错
        f = open("config.json", encoding="utf-8")
        self.Config = json.load(f)

'''
想在这块加一段代码,从文件里读取
'''


class myApp(wx.App):
    def OnInit(self):
        self.frame = Frame()
        self.frame.Show(True)
        return True


if __name__ == '__main__':
    app = myApp()
    app.MainLoop()


config.json:
[Asm] 纯文本查看 复制代码
{
  "组合框1": ["北京", "上海", "天津"],
  "组合框2": ["男", "女", "老", "少"],
  "组合框3": ["美女", "帅哥", "丑八怪"]
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zoenbo + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| zoenbo 发表于 2021-5-11 08:50
本帖最后由 zoenbo 于 2021-5-11 09:10 编辑

Loker 发表于 2021-5-11 08:39
[mw_shl_code=python,true]# -*- coding:utf-8 -*-
import json


大佬简直不要太帅,非常OK
'''
想在这块加一段代码,从文件里读取
'''


大佬,注释这一块我想整体替换成这个咋弄呢?就是下边这段也要让它从JSON里读取
    def on_combobox(self, event):
        return event.GetSelection() + 1
Loker 发表于 2021-5-11 09:24
zoenbo 发表于 2021-5-11 08:50
Loker 发表于 2021-5-11 08:39
[mw_shl_code=python,true]# -*- coding:utf-8 -*-
import json

看不明白你的需求
 楼主| zoenbo 发表于 2021-5-11 10:01
Loker 发表于 2021-5-11 09:24
看不明白你的需求

我想把这段放到那个'''注释的那一块怎么调用呢?
   def on_combobox(self, event):
        return event.GetSelection() + 1

比如把注释那块删除,我要放这段代码,这段代码也是在json文件里
Loker 发表于 2021-5-11 10:05
zoenbo 发表于 2021-5-11 10:01
我想把这段放到那个'''注释的那一块怎么调用呢?
   def on_combobox(self, event):
        return ev ...

从json文件里读取代码应该不行,只能读取文本。
 楼主| zoenbo 发表于 2021-5-11 10:49
Loker 发表于 2021-5-11 10:05
从json文件里读取代码应该不行,只能读取文本。

嗯,好的,这样就行了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表