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

    文章

    529

    浏览量

    57737
  • 程序
    +关注

    关注

    114

    文章

    3673

    浏览量

    79869
  • 代码
    +关注

    关注

    30

    文章

    4602

    浏览量

    67359
  • python
    +关注

    关注

    53

    文章

    4705

    浏览量

    83704
收藏 人收藏

    评论

    相关推荐

    基于FPGA创建一个简单的电机控制程序

    FPGA 非常适合精密电机控制,在这个项目中,我们将创建一个简单的电机控制程序,在此基础上可以构建更复杂的应用。
    发表于 08-11 09:06 1059次阅读
    基于FPGA<b class='flag-5'>创建</b>一个简单的电机控<b class='flag-5'>制程序</b>

    如何在Python中使用Selenium

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

    Python是如何使用Tkinter快速创建GUI应用程序

    Tkinter是什么?Python是如何使用Tkinter快速创建GUI应用程序的?
    发表于 12-23 07:15

    自制的模拟飞行器的程序代码+电路图

    自制的模拟飞行器的程序代码,及其电路图,
    发表于 11-25 10:23 44次下载

    伺服控制程序代码下载

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

    合泰马达的控制程序代码免费下载

    本文档的主要内容详细介绍的是合泰马达的控制程序代码免费下载。
    发表于 11-09 08:00 20次下载

    Python 代码加速运行的的小技巧

    的技巧进行整理。 0. 代码优化原则本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细节之前,需要了解一些代码优化基本原则
    的头像 发表于 09-01 11:28 1542次阅读

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

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

    Python证件照制作小程序代码

    Python证件照制作小程序代码,可一键修改证件照背景及大小,采用removebg在线抠图工具进行自动抠图,程序中已提供默认apiKey(g79GjuedecMLVVwkfXWSLv
    的头像 发表于 02-24 10:23 2748次阅读
    <b class='flag-5'>Python</b>证件照制作小<b class='flag-5'>程序</b>源<b class='flag-5'>代码</b>

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

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

    Vulture 可在Python程序中查找未使用的代码

    Vulture 可以在Python程序中查找未使用的代码。这对于清理和查找大型项目(代码库)中的错误非常有用。 不过由于Python的动态特
    的头像 发表于 10-21 10:28 308次阅读

    python怎么创建二维数组

    如何创建二维数组在Python中是一个常见的问题。在Python中,我们可以使用嵌套的列表(list of lists)或者使用NumPy库来创建二维数组。在本文中,我们将详细介绍这两
    的头像 发表于 11-21 15:10 2323次阅读

    python循环创建变量并赋值

    循环是Python编程中非常重要的一个概念,它可以让我们轻松地重复执行某些代码块,从而简化编程过程并提高代码的效率。在循环中,我们经常需要创建变量并赋值,这是非常常见的操作。接下来,我
    的头像 发表于 11-23 14:51 835次阅读

    python如何换行而不运行代码

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

    python软件怎么运行代码

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