如何使用 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
,但通常使用子进程是更好的方法。
尝试使用此方法删除 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
,但通常使用子进程是更好的方法。