如何使用Python从USB删除文件

如何使用Python从USB删除文件,python,usb,Python,Usb,尝试此方法删除usb上的文件,但无法工作。在python中,从usb上删除文件的最佳方法是什么。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) 几乎可以肯定的是,您的操作系统调用未成功,或者您的glob未匹配任何

尝试此方法删除usb上的文件,但无法工作。在python中,从usb上删除文件的最佳方法是什么。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)

几乎可以肯定的是,您的
操作系统调用未成功,或者您的glob未匹配任何内容,因此您应该使用
子进程。如果调用返回非零退出状态,请选中调用
,它将引发被调用进程错误:

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)
您应该添加一个
打印(usb_文件)
进行调试,它在您自己的代码中肯定是空的,不管您是否匹配都可以验证

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
,但通常使用子进程是更好的方法。

您是否收到错误?没有编译正常,但/media/sdbprint(usb_文件)中没有删除任何文件。未将任何内容打印到屏幕上。但是,如果我只是手动装入usb和“ls”,文件就在那里。因此,usb不是空的。完全按照您所说的操作没有返回任何错误尝试,
检查_调用([“ls”,“/media/sdb”)
并查看是否输出任何内容,并且
os.listdir(“/media/sdb”)
不抱歉,我的错误,它正在工作。在删除usb内容之前,我没有意识到我在脚本中进行卸载。非常愚蠢。谢谢你一次again@homeGrown,不用担心。