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

Ubuntu下Python访问磁盘未先图形打开触发FileNotFoundError问题

核心原因

Ubuntu 桌面版默认采用 udisks2 服务管理额外磁盘的挂载逻辑:非系统预装的本地数据盘、外接移动盘默认不会在开机时自动挂载,只有当你通过文件管理器(Nautilus)点击对应磁盘条目时,udisks2 才会临时将磁盘挂载到 /media/{username}/{磁盘名} 路径下。
你未通过图形界面访问磁盘前,/media/hackytech/Local Disk1 路径根本不存在,因此 Python 调用 os.listdir() 会抛出 FileNotFoundError,和 Python 本身没有关系,属于系统挂载逻辑的问题。

验证方式

开机后未访问磁盘前,在终端执行 ls /media/hackytech/,可以看到目录下没有 Local Disk1 文件夹;图形化访问磁盘后再次执行上述命令,就能看到对应目录,此时Python调用自然正常。

解决方案
  • 方案1:配置开机自动挂载(永久生效,推荐)
    1. 执行 sudo blkid 命令,找到你要挂载的 Local Disk1 对应的 UUID 以及文件系统类型(一般是 NTFS、ext4 等)
    2. 执行 sudo nano /etc/fstab 编辑挂载配置文件,在末尾新增一行:
      如果是 NTFS 格式:UUID=你的磁盘UUID /media/hackytech/Local\040Disk1 ntfs defaults,uid=1000,gid=1000,umask=0022 0 0
      如果是 ext4 格式:UUID=你的磁盘UUID /media/hackytech/Local\040Disk1 ext4 defaults 0 2
      注意路径中的空格需要用\040代替,uid和gid替换为你自己的用户id和组id,执行id命令即可查看
    3. 执行 sudo mkdir -p /media/hackytech/Local\040Disk1 提前创建挂载目录,再执行 sudo mount -a 验证配置是否正确,没有报错即配置生效,后续开机都会自动挂载该磁盘。
  • 方案2:命令行手动触发挂载(无需图形界面,适合临时使用)
    执行 sudo blkid 拿到磁盘对应的设备路径(比如 /dev/sda2),执行 udisksctl mount -b /dev/sdaX(sdaX替换为实际设备名)即可完成挂载,效果和图形化点击访问一致。
  • 方案3:临时使用无需修改配置,每次开机后先通过文件管理器点击一次对应磁盘即可。

内容的提问来源于stack exchange,提问作者Tanmay Chavan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:45:07