我想使用Python和Kivy将文件写入用户手机的(虚拟)SD卡,并在不同的函数中再次读取此文件。由于Android、IOS和Windows Phone可能有不同的SD卡路径,因此使用“plyer”似乎是一个好主意。那么我应该如何写入/读取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 是否支持该功能。
import shutil
sdpathfile = os.path.join(sdpath, 'filename')
shutil.copyfile(os.path.join('folder', 'filename2'), sdpathfile)