如何使用 Python 从 USB 删除文件

How to delete files off USB using Python

尝试使用此方法删除 USB 上的文件,但行不通。在 python 中从 USB 中删除文件的最佳方法是什么? shutil.rmtree() 我不想删除文件夹以及所有文件。

import os
import glob

os.system('mount /dev/sdb1 /media/sdb')

usb_files = glob.glob('/media/sdb/*')
for f in usb_files:
    os.remove(f)

几乎可以肯定的是,您的 os.system 调用要么没有成功,要么您的 glob 不匹配任何东西,因此没有什么可迭代的,您应该使用 subprocess.check_call 如果调用 returns 非零退出状态:

from subprocess import check_call
check_call(['mount', '/dev/sdb1','/media/sdb'])

usb_files = glob.glob('/media/sdb/*')
for f in usb_files:
    os.remove(f)

你应该加一个print(usb_files)来调试,你自己的代码里肯定是空的,不管你匹配到什么都好验证。

glob 不在乎你的路径是否确实存在,所以如果没有安装任何东西,glob 不会抱怨:

In [3]: print(glob.glob('/gobbledegook'))
[]

而os.system如果失败可能会输出一个字符串,但不会引发错误:

In [5]: os.system("mount /dev/sdb1 /goobledegook")
mount: only root can do that

您可以检查系统调用是否返回 0,但通常使用子进程是更好的方法。