将图像输入保存到文件夹路径



我现在正面临一个问题。(开始尝试python 3小时前)

所以我试着做这个不和谐的机器人,如果用户发送一个图像,机器人会保存它。我的问题是bot没有将其保存在某个文件夹中(idk如何也哈哈),所以我所尝试的是我会复制所述图像,它将创建一个新文件夹,新文件夹是复制图像的位置。然后图像的原始副本将被删除,因此只留下文件夹中的图像文件。

我现在的问题是它不一致。它在第一次图像输入上工作,但如果第二次尝试它将不起作用。

我想找到一种更简单的方法来保存图像文件,然后它将被定向到一个文件夹,而不是被保存在与python文件相同的地方。

@client.command()
async def save(ctx):


try:
url = ctx.message.attachments[0].url
except IndexError:
print("Error : No attachments")
await ctx.send("No attachments detected")
else:
imageName = str(uuid.uuid4()) + '.jpg'
r = requests.get(url, stream=True)
with open(imageName,'wb',) as out_file:
print('Saving image: ' + imageName)
shutil.copyfileobj(r.raw, out_file,)
images = [f for f in os.listdir() if '.jpg' in f.lower()]
os.mkdir('Images')    
for image in images:
new_path = 'Images/' + image
shutil.move(image, new_path)```

您只需要更改with open(imageName, 'wb') as out_file:因为它会将图像保存在脚本运行的文件夹中,如果你想将它们保存在Images文件夹中,你只需将其更改为with open("Images/" + imageName, 'wb') as out_file:或任何其他文件夹。

我想你没有给出一个特定的路径,你可以使用os.join(os.getcwd(),Images)

给出一个特定的路径
@client.command()
async def save(ctx):
try:
url = ctx.message.attachments[0].url
except IndexError:
print("Error : No attachments")
await ctx.send("No attachments detected")
else:
imageName = str(uuid.uuid4()) + '.jpg'
r = requests.get(url, stream=True)
if r.status_code == 200:
with open(specific_path, 'wb') as f:
f.write(r.content)

最新更新