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

如何用树莓派实现U盘实时读写?求项目实现指引

树莓派实时读写U盘文件实现指引

一、先完成U盘的挂载配置

  • 识别U盘设备:执行lsblk命令,找到U盘对应的设备名(通常是/dev/sda1这类格式)
  • 创建挂载目录:sudo mkdir /mnt/usb
  • 挂载U盘:
    • 若为FAT32格式:sudo mount -t vfat /dev/sda1 /mnt/usb
    • 若为NTFS格式,先安装依赖:sudo apt install ntfs-3g,再执行sudo mount -t ntfs-3g /dev/sda1 /mnt/usb
  • 设置开机自动挂载:编辑/etc/fstab文件,添加一行(根据U盘格式调整):
    /dev/sda1 /mnt/usb vfat defaults 0 0
    
    保存后执行sudo mount -a验证配置是否生效。

二、实时读写的具体实现

实时读取文件

  • 命令行方式:用tail -f /mnt/usb/your_file.txt可以实时监控文件新增内容
  • Python代码示例:
    import time
    
    def realtime_read(file_path):
        with open(file_path, 'r') as f:
            # 移动到文件末尾
            f.seek(0, 2)
            while True:
                line = f.readline()
                if line:
                    print(line.strip())
                time.sleep(0.1)
    
    realtime_read('/mnt/usb/data.log')
    

实时写入文件

  • Python代码示例(持续写入数据):
    import time
    
    def realtime_write(file_path):
        while True:
            with open(file_path, 'a') as f:
                # 写入当前时间作为示例数据
                f.write(f'{time.strftime("%Y-%m-%d %H:%M:%S")} - new record\n')
                # 强制刷新到磁盘,避免缓存导致数据延迟
                f.flush()
            time.sleep(1)
    
    realtime_write('/mnt/usb/data.log')
    

三、稳定性与权限注意事项

  • 调整目录权限:执行sudo chmod 777 /mnt/usb(或指定用户组权限),避免普通用户读写时出现权限错误
  • 检测U盘状态:用mount | grep /mnt/usb命令判断U盘是否挂载,Python中可通过os.path.ismount('/mnt/usb')检查
  • 处理插拔事件:编写udev规则实现自动挂载/卸载,比如在/etc/udev/rules.d/99-usb-mount.rules中添加:
    ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/usr/bin/sudo mount /dev/%k /mnt/usb"
    ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/usr/bin/sudo umount /mnt/usb"
    
    编写后重启udev服务:sudo systemctl restart udev

内容的提问来源于stack exchange,提问作者MR.OHM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:45:11