0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用14行Python代码创建Switch自制程序

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-11-02 14:41 次阅读

Python开发Switch程序,在你的Switch上运行Python代码,你需要用到一个名为PyNX的开源工具,操作流程如下:

1. 用读卡器将SD卡插入开发设备(电脑or笔记本)中

2. 将PyNX的Zip版本的内容复制到SD卡的/switch目录下

3. 编辑main.py文件, 将你的代码逻辑写入该文件中

4. 将SD卡插入Switch

5. 在Homebrew菜单中运行PyNX

听起来挺简单,不过其中第5步的Homebrew菜单你需要通过特殊的方法来打开,这里不过多描述,请阅读这篇文章:
https://switch.homebrew.guide/

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。

如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

当然,我更推荐大家用VSCode编辑器,写代码可惬意了:Python 编程的最好搭档—VSCode 详细指南

按照流程,接下来你需要下载源代码的Zip版本:
https://github.com/nx-python/PyNX/archive/master.zip

无法下载请在**Python实用宝典 **公众号后台回复: **Switch **获取网盘链接。

解压后将其复制到SD卡的/switch目录下。

2.编写简单的备份工具

接下来就可以编写该源代码中的main.py文件了,这个就是我们DIY程序的主要代码。

首先,需要导入一些库以开始在我们的自制应用程序上工作,主要用到了作者的nx包。此外,我们还想向用户显示选择菜单,因此我们也应该导入AnsiMenu:

import nx
from nx.utils import AnsiMenu

接下来,创建常量来存储《塞尔达传说:狂野的呼吸》和《超级马里奥·奥德赛》的名称ID:

# title IDs are hexadecimal numbers
BOTW_TITLE_ID = 0x01007EF00011E000
SMO_TITLE_ID = 0x0100000000010000

创建两个列表,将其用于菜单栏。用户可以选择的标题名称在中title_name。title_ids用于以相同顺序存储游戏ID:

title_names = ["The Legend of Zelda - Breath of the Wild", "Super Mario Odyssey"]
title_ids = [BOTW_TITLE_ID, SMO_TITLE_ID]

设置完列表后就可以使用AnsiMenu实用程序类创建菜单。此菜单将允许用户选择将保存数据备份的游戏名称:

select_title_menu = AnsiMenu(title_names)

每个Python程序的主要执行流程最好进行如下包装:

if __name__ == '__main__':

现在可以使用其query方法呈现查询菜单:

selected_index = select_title_menu.query()

该query方法返回用户选择的索引(index),该索引现在存储在selected_index变量中。由于我们先前创建的两个列表的顺序相等,因此我们可以使用索引从title_ids列表中获取游戏ID :

selected_title_id = title_ids[selected_index]

selected_title_id现在包含所选的游戏ID。现在,我们可以使用此游戏ID创建一个功能Title对象:

selected_title = nx.titles[selected_title_id]

现在,我们需要备份所选择的游戏数据。为此,我们需要挂载游戏的savedata。这需要通过selected_title对象的savedata来完成:

with selected_title.savedata as savedata:
    savedata.backup()

这将创建数据备份 /backups/savedata/{title_id}/。当然你还可以提供自己的备份路径,如下所示:

with selected_title.savedata as savedata:
    savedata.backup('/savedata_backups/{}/'.format(title_names[selected_index]))

完整代码如下:

import nx
from nx.utils importAnsiMenu
# title IDs are hexadecimal numbers
BOTW_TITLE_ID =0x01007EF00011E000
SMO_TITLE_ID =0x0100000000010000
title_names =["The Legend of Zelda - Breath of the Wild","Super Mario Odyssey"]
title_ids =[BOTW_TITLE_ID, SMO_TITLE_ID]
select_title_menu =AnsiMenu(title_names)
if __name__ =='__main__':
    selected_title = select_title_menu.query()
    selected_title = title_ids[selected_title]
    selected_title = nx.titles[selected_title]
    with selected_title.savedata as savedata:
        savedata.backup('/savedata_backups/{}/'.format(title_names[selected_index]))

恭喜,你已使用14行Python代码创建了第一个Switch自制程序!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Switch
    +关注

    关注

    1

    文章

    532

    浏览量

    58150
  • 程序
    +关注

    关注

    116

    文章

    3773

    浏览量

    80830
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68324
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439
收藏 人收藏

    评论

    相关推荐

    如何在Python中使用Selenium

    重新编写程序。  步骤9:创建一个新的PyDev模块。右键单击包>新建>其他> PyDev模块。  步骤10:编写您的Python代码。  使用Py
    发表于 09-08 18:17

    伺服控制程序代码下载

    伺服控制程序代码下载
    发表于 05-02 14:47 38次下载
    伺服控<b class='flag-5'>制程序</b>源<b class='flag-5'>代码</b>下载

    数据分析为什么Python?只需4代码就可以画地图

    Python 4代码即可以画出一个地图,8代码画出一个中国地图!
    的头像 发表于 05-28 16:16 4941次阅读
    数据分析为什么<b class='flag-5'>用</b><b class='flag-5'>Python</b>?只需4<b class='flag-5'>代码</b>就可以画地图

    如何实现计算机视觉的目标检测10Python代码帮你实现

    只需10Python代码,我们就能实现计算机视觉中目标检测。 没错,这寥寥10代码,就能
    的头像 发表于 02-03 11:35 3037次阅读

    如何使用50Python代码实现AI的动作平衡

    本文将为大家展示如何通过 Numpy 库和 50 Python 代码,使用标准的 OpenAI Gym平台创建智能体 (agent),就教会机器处理推车杆问题 (cart pole
    的头像 发表于 06-16 10:40 3091次阅读

    使用Python读文件的源代码免费下载

    本文档的主要内容详细介绍的是使用Python读文件的源代码免费下载。
    发表于 10-22 17:57 12次下载
    使用<b class='flag-5'>Python</b>按<b class='flag-5'>行</b>读文件的源<b class='flag-5'>代码</b>免费下载

    10 BASIC 语言创建很棒的游戏

    BASIC 10 Liner Contest 的目标是 10 BASIC 语言创建一个完整的电脑游戏。
    发表于 07-30 17:21 1860次阅读
    <b class='flag-5'>用</b>10<b class='flag-5'>行</b> BASIC 语言<b class='flag-5'>创建</b>很棒的游戏

    浅析python模块创建和from及import使用

    python模块通过python程序编写的.py文件即可创建,通过from及import语句导入模块来使用。
    的头像 发表于 02-21 14:44 797次阅读

    用于程序代码可视化和监控的对象连接到控制程序

    简介 在此示例中,将用于程序代码可视化和监控的对象连接到控制程序。您先前已在 STEP 7 中创建了一个程序(用于运输传送带上的生产单位)。您还创建
    的头像 发表于 08-21 10:11 1283次阅读
    用于<b class='flag-5'>程序代码</b>可视化和监控的对象连接到控<b class='flag-5'>制程序</b>

    python有什么 如何用python创建数据库

    python有什么 如何用python创建数据库 Python是一种高级编程语言,可以用于开发各种类型的应用
    的头像 发表于 08-28 16:41 1141次阅读

    代码Python程序转换为GUI应用程序

    Gooey项目支持代码将(几乎)任何Python 2或3控制台程序转换为GUI应用程序
    的头像 发表于 10-17 11:41 882次阅读
    一<b class='flag-5'>行</b><b class='flag-5'>代码</b>将<b class='flag-5'>Python</b><b class='flag-5'>程序</b>转换为GUI应用<b class='flag-5'>程序</b>

    代码Python程序转换为图形界面应用

    Gooey项目支持代码将(几乎)任何Python 2或3控制台程序转换为GUI应用程序
    的头像 发表于 10-30 15:39 435次阅读
    一<b class='flag-5'>行</b><b class='flag-5'>代码</b>将<b class='flag-5'>Python</b><b class='flag-5'>程序</b>转换为图形界面应用

    python写完程序之后怎么运行

    Python程序的执行流程有更深入的了解。 一、Python程序的基本结构 Python程序
    的头像 发表于 11-22 11:10 966次阅读

    python如何换行而不运行代码

    Python程序中的换行是指在代码中使用特定的语法来表示换行,以使代码更易读。换行的目的是为了让程序更具可读性并提高
    的头像 发表于 11-24 09:50 3078次阅读

    python软件怎么运行代码

    Python是一种高级编程语言,它被广泛用于开发各种类型的应用程序,从简单的脚本到复杂的网络应用和机器学习模型。要运行Python代码,您需要一个P
    的头像 发表于 11-28 16:02 854次阅读