Python Kivy 将文件写入/读取到 SD 卡
Posted
技术标签:
【中文标题】Python Kivy 将文件写入/读取到 SD 卡【英文标题】:Python Kivy write/read file to SD card 【发布时间】:2015-08-03 01:46:16 【问题描述】:通过使用 Python 和 Kivy,我想将文件写入用户手机的(虚拟)SD 卡,并在不同的函数中再次读取该文件。由于 android、ios 和 Windows Phone 可能有不同的 SD 卡路径,因此使用“plyer”似乎是个好主意。 如何我如何写入/读取文件到/SD卡?
【问题讨论】:
没有 iOS 设备有 SD 卡插槽。 【参考方案1】: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 也适用于 Android,但它依赖于已过时的 /sdcard 符号链接。不过我不知道是 IOS 还是 Windows Phone。
复制到 SD 卡
import shutil
sdpathfile = os.path.join(sdpath, 'filename')
shutil.copyfile(os.path.join('folder', 'filename2'), sdpathfile)
【讨论】:
【参考方案2】:使用Kivy的user_data_dir返回用户文件系统所在目录的路径。
然后使用 Kivy 的storage 将数据存储到目录中的一个文件中。
【讨论】:
有人告诉我 user_data_dir 只能在 PC 上工作,但确实可以。应该只是尝试过。代码:sdpath = App.get_running_app().user_data_dir Kivy IRC:这行得通,但是 /sdcard 符号链接已经过时了,所以你不应该依赖这个。以上是关于Python Kivy 将文件写入/读取到 SD 卡的主要内容,如果未能解决你的问题,请参考以下文章