You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iPad文本文件存储位置及Pythonista读取文件报错求助

解决Pythonista在iPad上找不到txt文件的问题

嘿,刚入手iPad Pro遇到这种路径问题太正常了,毕竟Windows和iOS的文件系统逻辑完全不一样,我来给你一步步捋清楚怎么解决~

核心原因

Pythonista在iOS上没办法直接读取Google Drive里的文件(除非你走正确的路径或者把文件导入它的本地目录),因为iOS的沙盒机制限制了APP的访问权限,不像Windows那样同一目录就能直接访问。

三种解决方法,选你觉得顺手的来:

  • 方法1:把txt文件导入Pythonista本地目录(最省心)

    1. 打开Pythonista,点击左上角的文件夹图标进入它的文件浏览器
    2. 点右上角的「+」按钮,选择「Import…」
    3. 在弹出的文件选择器里找到Google Drive里的那个txt文件,导入进来
    4. 这时候你的py脚本和txt文件就在同一个Pythonista目录下了,直接用open("你的文件名.txt")就能正常读取,和Windows上一样
  • 方法2:用正确的Google Drive文件路径
    如果你不想移动文件,想留在Google Drive里,那得用Pythonista能识别的完整路径:

    1. 在Pythonista的文件浏览器里找到Google Drive里的txt文件(得先在iOS的「文件」APP里把Google Drive挂载好)
    2. 长按这个txt文件,选择「Copy Path」
    3. 把复制到的路径粘贴到你的代码里,比如open("/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/Google Drive/你的文件.txt")
      这样就能直接访问Google Drive里的文件了
  • 方法3:用内置文件选择器(最灵活)
    直接在代码里加一段文件选择的逻辑,以后不管文件在哪都能直接选,不用纠结路径:

    import ui
    from pathlib import Path
    
    def load_word_file():
        # 弹出文件选择器
        file_picker = ui.FilePickerViewController()
        selected_path = file_picker.pick_file()
        
        if selected_path:
            # 读取文件内容
            with open(selected_path, 'r', encoding='utf-8') as f:
                words = [line.strip() for line in f if line.strip()]
            # 这里写你处理单词的逻辑
            print(f"成功读取 {len(words)} 个单词")
            return words
        else:
            print("没有选择文件")
            return None
    
    # 调用函数加载文件
    word_list = load_word_file()
    

    运行这段代码会弹出文件选择器,你直接选Google Drive里的txt文件就行,完全不用手动写路径

小提醒

iOS的文件系统权限比较严格,如果你用方法2,记得确认Google Drive已经在iOS的「文件」APP里启用了,不然Pythonista找不到它。

内容的提问来源于stack exchange,提问作者YO LO

火山引擎 最新活动