You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Kivy开发Android应用能否通过CSV文件存储数据?

关于Kivy开发Android应用使用CSV存储数据的解答
  • 完全可以通过Python的csv库在Android手机上创建、编辑CSV文件来存储数据,这类操作是被Android系统允许的。
  • 核心注意事项:
    • 存储路径选择:不要使用硬编码的绝对路径,建议用应用专属的存储目录。Kivy结合Android环境时,可通过android.storage模块的app_storage_path()获取应用的内部存储目录,这个目录无需额外权限即可读写;桌面端测试时可使用用户目录,示例代码如下:
      from kivy.utils import platform
      import os
      import csv
      
      def get_csv_file_path():
          if platform == 'android':
              from android.storage import app_storage_path
              return os.path.join(app_storage_path(), 'activity_records.csv')
          else:
              # 桌面端测试路径
              return os.path.join(os.path.expanduser('~'), 'activity_records.csv')
      
    • 权限问题:如果使用应用专属内部存储,Android 6.0+无需申请动态权限;若需写入外部公共存储,则需在Buildozer配置文件中添加android.permissions = WRITE_EXTERNAL_STORAGE,并处理动态权限请求。
  • 基础CSV操作示例:
    • 写入数据(自动创建文件及表头):
      def add_activity_record(date, activity):
          csv_path = get_csv_file_path()
          file_exists = os.path.isfile(csv_path)
          with open(csv_path, 'a', newline='', encoding='utf-8') as file:
              writer = csv.writer(file)
              if not file_exists:
                  writer.writerow(['日期', '活动内容'])
              writer.writerow([date, activity])
      
    • 按日期搜索数据:
      def search_records_by_date(target_date):
          csv_path = get_csv_file_path()
          matched_records = []
          if not os.path.exists(csv_path):
              return matched_records
          with open(csv_path, 'r', encoding='utf-8') as file:
              reader = csv.DictReader(file)
              for row in reader:
                  if row['日期'] == target_date:
                      matched_records.append(row['活动内容'])
          return matched_records
      
  • 打包说明:使用Buildozer打包时,csv作为Python标准库会被自动包含,无需额外配置;只需确保buildozer.spec中正确设置Android相关参数即可。

内容的提问来源于stack exchange,提问作者Andrea python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:15:58