Python Kivy如何将文件写入/读取SD卡?

5

我想使用Python和Kivy将文件写入用户手机的(虚拟)SD卡,并在不同的函数中再次读取此文件。由于Android、IOS和Windows Phone可能有不同的SD卡路径,因此使用“plyer”似乎是一个好主意。那么我应该如何写入/读取SD卡上的文件呢?


1
没有任何iOS设备有SD卡插槽。 - Gavin
2个回答

5

SD卡路径

from jnius import autoclass  # SDcard Android

# Get path to SD card Android
try:
    Environment = autoclass('android.os.Environment')
    sdpath = Environment.getExternalStorageDirectory()

# Not on Android
except:
    sdpath = App.get_running_app().user_data_dir

user_data_dir 也可在安卓系统上使用,但它依赖一个 /sdcard 符号链接,这种方式正在逐渐过时。目前我不清楚 IOS 和 Windows Phone 是否支持该功能。

复制到 SD 卡

import shutil

sdpathfile = os.path.join(sdpath, 'filename')
shutil.copyfile(os.path.join('folder', 'filename2'), sdpathfile)

1
使用Kivy的user_data_dir函数,返回用户文件系统目录的路径。
然后使用Kivy的storage函数,将数据存储到该目录中的文件中。

我被告知user_data_dir只在PC上工作,但实际上它可以工作。应该早点尝试。代码:sdpath = App.get_running_app().user_data_dir - NumesSanguis
Kivy IRC:这个可行,但是/sdcard符号链接已经过时了,所以你不应该依赖它。 - NumesSanguis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接