用Python開發(fā)Switch程序,在你的Switch上運(yùn)行Python代碼,你需要用到一個(gè)名為PyNX的開源工具,操作流程如下:
1. 用讀卡器將SD卡插入開發(fā)設(shè)備(電腦or筆記本)中
2. 將PyNX的Zip版本的內(nèi)容復(fù)制到SD卡的/switch目錄下
3. 編輯main.py文件, 將你的代碼邏輯寫入該文件中
4. 將SD卡插入Switch
5. 在Homebrew菜單中運(yùn)行PyNX
聽起來(lái)挺簡(jiǎn)單,不過(guò)其中第5步的Homebrew菜單你需要通過(guò)特殊的方法來(lái)打開,這里不過(guò)多描述,請(qǐng)閱讀這篇文章:
https://switch.homebrew.guide/
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒(méi)有,請(qǐng)?jiān)L問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda
當(dāng)然,我更推薦大家用VSCode編輯器,寫代碼可愜意了:Python 編程的最好搭檔—VSCode 詳細(xì)指南。
按照流程,接下來(lái)你需要下載源代碼的Zip版本:
https://github.com/nx-python/PyNX/archive/master.zip
無(wú)法下載請(qǐng)?jiān)?*Python實(shí)用寶典 **公眾號(hào)后臺(tái)回復(fù): **Switch **獲取網(wǎng)盤鏈接。
解壓后將其復(fù)制到SD卡的/switch目錄下。
2.編寫簡(jiǎn)單的備份工具
接下來(lái)就可以編寫該源代碼中的main.py文件了,這個(gè)就是我們DIY程序的主要代碼。
首先,需要導(dǎo)入一些庫(kù)以開始在我們的自制應(yīng)用程序上工作,主要用到了作者的nx包。此外,我們還想向用戶顯示選擇菜單,因此我們也應(yīng)該導(dǎo)入AnsiMenu:
import nx
from nx.utils import AnsiMenu
接下來(lái),創(chuàng)建常量來(lái)存儲(chǔ)《塞爾達(dá)傳說(shuō):狂野的呼吸》和《超級(jí)馬里奧·奧德賽》的名稱ID:
# title IDs are hexadecimal numbers
BOTW_TITLE_ID = 0x01007EF00011E000
SMO_TITLE_ID = 0x0100000000010000
創(chuàng)建兩個(gè)列表,將其用于菜單欄。用戶可以選擇的標(biāo)題名稱在中title_name。title_ids用于以相同順序存儲(chǔ)游戲ID:
title_names = ["The Legend of Zelda - Breath of the Wild", "Super Mario Odyssey"]
title_ids = [BOTW_TITLE_ID, SMO_TITLE_ID]
設(shè)置完列表后就可以使用AnsiMenu實(shí)用程序類創(chuàng)建菜單。此菜單將允許用戶選擇將保存數(shù)據(jù)備份的游戲名稱:
select_title_menu = AnsiMenu(title_names)
每個(gè)Python程序的主要執(zhí)行流程最好進(jìn)行如下包裝:
if __name__ == '__main__':
現(xiàn)在可以使用其query方法呈現(xiàn)查詢菜單:
selected_index = select_title_menu.query()
該query方法返回用戶選擇的索引(index),該索引現(xiàn)在存儲(chǔ)在selected_index變量中。由于我們先前創(chuàng)建的兩個(gè)列表的順序相等,因此我們可以使用索引從title_ids列表中獲取游戲ID :
selected_title_id = title_ids[selected_index]
selected_title_id現(xiàn)在包含所選的游戲ID。現(xiàn)在,我們可以使用此游戲ID創(chuàng)建一個(gè)功能Title對(duì)象:
selected_title = nx.titles[selected_title_id]
現(xiàn)在,我們需要備份所選擇的游戲數(shù)據(jù)。為此,我們需要掛載游戲的savedata。這需要通過(guò)selected_title對(duì)象的savedata來(lái)完成:
with selected_title.savedata as savedata:
savedata.backup()
這將創(chuàng)建數(shù)據(jù)備份 /backups/savedata/{title_id}/。當(dāng)然你還可以提供自己的備份路徑,如下所示:
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代碼創(chuàng)建了第一個(gè)Switch自制程序!
-
Switch
+關(guān)注
關(guān)注
1文章
537瀏覽量
59618 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82918 -
代碼
+關(guān)注
關(guān)注
30文章
4899瀏覽量
70637 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86656
發(fā)布評(píng)論請(qǐng)先 登錄
分享50條經(jīng)典的Python一行代碼
如何在Python中使用Selenium
如何實(shí)現(xiàn)計(jì)算機(jī)視覺(jué)的目標(biāo)檢測(cè)10行Python代碼幫你實(shí)現(xiàn)
如何使用50行Python代碼實(shí)現(xiàn)AI的動(dòng)作平衡
使用Python按行讀文件的源代碼免費(fèi)下載

用10行 BASIC 語(yǔ)言創(chuàng)建很棒的游戲

淺析python模塊創(chuàng)建和from及import使用
用于程序代碼可視化和監(jiān)控的對(duì)象連接到控制程序

python有什么用 如何用python創(chuàng)建數(shù)據(jù)庫(kù)
一行代碼將Python程序轉(zhuǎn)換為GUI應(yīng)用程序

一行代碼將Python程序轉(zhuǎn)換為圖形界面應(yīng)用

評(píng)論