用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:

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

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

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

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

2.编写简单的备份工具

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

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

import nxfrom nx.utils import AnsiMenu

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

# title IDs are hexadecimal numbersBOTW_TITLE_ID = 0x01007EF00011E000SMO_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 nxfrom nx.utils importAnsiMenu# title IDs are hexadecimal numbersBOTW_TITLE_ID =0x01007EF00011E000SMO_TITLE_ID =0x0100000000010000title_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自制程序!

文章增删改自作者的tutorial, 感谢他:https://nx-python.readthedocs.io/

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看

,有任何问题都可以在下方留言,我们会耐心解答的!

点击下方阅读原文可以获取所有代码和链接哦!

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

python怎么用switch,Python 能开发任天堂Switch应用??奉上教程!相关推荐

  1. TI-BASIC 计算器游戏开发之文字、图形、音频教程 II:图形处理

    2019独角兽企业重金招聘Python工程师标准>>> TI-BASIC 计算器游戏开发之文字.图形.音频教程 II:图形处理 [第二部分] TI-BASIC 图形处理教程 还没到结 ...

  2. TI-BASIC 计算器游戏开发之文字、图形、音频教程:前言

    2019独角兽企业重金招聘Python工程师标准>>> TI-BASIC 计算器游戏开发之文字.图形.音频教程:前言 [前言] 开发环境:TI-89T的TI-BASIC,主要是因为T ...

  3. python软件包自带的集成开发环境-Python的10大集成开发环境和代码编辑器(指南)...

    使用IDLE或者Python Shell来编写Python是非常适合于简单程序的,但是这些工具往往将大型的编程项目变成一个个充满绝望和沮丧的"坑".使用一款集成开发环境甚至是一款好 ...

  4. python语言编程环境-python语言开发搭建电脑环境的方法

    python语言开发搭建电脑环境的方法 发布时间:2020-08-24 15:57:58 来源:亿速云 阅读:89 作者:小新 这篇文章主要介绍了python语言开发搭建电脑环境的方法,具有一定借鉴价 ...

  5. python是基于什么语言开发-python是哪个国家的人开发的语言

    python是Google的吉多·范罗苏姆设计的,Python是一种跨平台的计算机程序设计语言.作为一种面向对象的动态类型语言,它最初设计用于编写自动化脚本. 是Google的吉多·范罗苏姆设计的. ...

  6. python怎么打开编辑器-python用什么编辑器进行项目开发

    工欲善其事必先利其器,估计大部分的pythoner都是从python IDE开始了python之路.有很多的python IDE工具可以用,但是要从中选出一个用着趁手的IDE却是一项艰巨的任务. 你可 ...

  7. 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类

    挑战:使用机器学习对 RSS 提要进行分类 最近,我接到一项任务,要求为客户创建一个 RSS 提要分类子系统.目标是读取几十个甚至几百个 RSS 提要,将它们的许多文章自动分类到几十个预定义的主题领域 ...

  8. Day 3: Flask —— 使用Python和OpenShift进行即时Web开发

    最近Packtpub找到了我,让我给他们新出版的关于Flask的书写书评.Flask是一个很流行的Python框架.那本书是Ron DuPlain写的<Flask 即时Web开发>.我决定 ...

  9. python费用结算系统_python 全栈开发,Day104(DRF用户认证,结算中心,django-redis)

    考试第二部分:MySQL数据库 6.  MySQL中char和varchar的区别(1分) char是定长,varchar是变长. char的查询速度比varchar要快. View Code 7.  ...

最新文章

  1. The Elements of Statistical Learning的笔记
  2. js中内置对象Math()常用方法笔记
  3. C++ 通讯录学习总结
  4. python中的 set 中的元素
  5. 线程的状态转换、sleep()、wait()、yeild()、终止线程的方法、线程之间的协作(join()、wait() notify() notifyAll()、await() signal() )
  6. cad2017怎么改变选择方式_CAD编辑对象选择的方法有哪些
  7. ios-实现ARC与MRC混编
  8. hj212协议如何和php通讯,5G/4G边缘计算网关如何实现HJ212协议上报
  9. easy~算法刷题第三天
  10. 原创的一份游戏创意案
  11. Python菜鸟教程第二十课之初识Django
  12. 数据结构二叉树学习1-前序序列创建二叉树
  13. 微型计算机ccc认证的流程,计算机的3C认证办理以及流程
  14. 从零开始配置搭建云服务器(Linux系统、简明详细教程)
  15. linux中文显示为乱码
  16. 如何用Python编写一个求 1到n阶乘之和的程序
  17. 搭配Online|原光辉调研沁水县文物保护和城市建设工作
  18. 柳比歇夫的时间管理法—《可以量化…
  19. #进击的贪吃蛇-----将贪吃蛇,飞机大战,坦克大战功能融合形成新的游戏
  20. 液晶显示屏选型重点参数

热门文章

  1. 基于NLP的COVID-19虚假新闻检测
  2. jzxx1877烤面包
  3. 我是如何解决电脑连接WiFi提示无线适配器或访问点有问题
  4. 【计算机系统基础】符号表、符号解析(详解)
  5. WordPress 限制不同用户角色可上传的文件类型及大小
  6. 【数据治理】数据管理标准规范的初步认识
  7. 制作一个简单HTML个人网页网页——人物介绍梵高(HTML+CSS)
  8. 用于制作电视广告和音乐视频的计算机,基于BS方式实现视音频编辑的系统及方法专利_专利查询 - 天眼查...
  9. 查询公司的详细情况的办法 - 应届生
  10. 人工智能这把火 会让.ai域名成为下一个.com吗?