我有一些代码可以让我打印到达文件夹的图像。
但我希望它们在打印后立即删除 - 我想在RaspberryPI上尝试这个,但我没有足够的空间来存储所有图像。
如果有人可以帮助我,我将非常感激。
这是我的代码:
monRep = "/Users/XX/Desktop/XXX/"
import os, mimetypes, random
while True:
fpaths = []
for fname in os.listdir(monRep):
fpath = os.path.join(monRep, fname)
if os.path.isfile(fpath):
mt = mimetypes.guess_type(fpath)[0]
ext = os.path.splitext(fpath)[1]
if mt: mt = mt.split('/')[0].lower()
else: mt = False
#if ext.lower() in ('.bmp','.pict', '.JPG', '.jpg', '.pdf'): mt = 'image'
if mt in ('image',): fpaths.append(fpath)
for fpath in fpaths:
newpath = fpath.replace('/Users/XX/Desktop/XXX/','/Users/XX/Desktop/XXX2/')
os.rename(fpath,newpath)
command = "lpr "+newpath
print (command)
os.system(command)
我试着写到最后
os.remove ('/Users/Aym/Desktop/eden2/')
但后来我有了这个:
SError:[Errno 1]不允许操作:'/ Users / XX / Desktop / XXX2 /'
我尝试了在这个论坛上推荐的shutil方法
import os
import shutil
for root, dirs, files in os.walk('/Users/XX/Desktop/XXX2/'):
for f in files:
os.unlink(os.path.join(root, f))
for d in dirs:
shutil.rmtree(os.path.join(root, d))
但没有发生
答案 0 :(得分:0)
我在Raspberry上的空间也减少了。你首先可以交换的是:
LIST_NAME = ['.jpg', '.bmp', '.mickey_mouse']
file = [file for file in os.listdir(CAMERA_DIR) for type_name in LIST_NAME if file.endswith(type_name)]
这在某种程度上相当于你上面的整个搜索引擎。 LIST_NAME是你寻找的任何东西,CAMERA_DIR ==“/ Users / XX / Desktop / XXX /”
上面的代码将使您的代码更轻松,更紧凑,而无需使用额外的模块。
您可以在os.path.join(CAMERA_DIR,file_name)下为每个找到的文件使用XX到XX2(shutil模块)的简单移动操作。
打印或执行任何操作后的最后一步,使用简单命令完全删除XX2文件夹: shutil.rmtree(XX2)
这绝对可以在Python3中清理你的代码。玩得开心! 我甚至可以推荐的是:使用/ tmp / NAMEXX文件夹。在最坏的情况下,它只在你的树莓的临时文件夹!