如何为 shutil.copyfileobj 设置目的地?
How to set a destination for shutil.copyfileobj?
这段代码将一个不和谐的图像保存到它所在的文件夹中。我试图为保存文件设置一个目的地,但我没有在 shutil 网站上找到任何设置目的地的东西。我试图将目的地放在 shutil.copyfileobj 括号中,但这没有用。我对编码也比较陌生。
这是代码:
import uuid
import requests
import shutil
from discord.ext import commands
class filesaver:
@bot.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:
if url[0:26] == "https://cdn.discordapp.com":
r= requests.get(url, stream=True)
imageName = str(uuid.uuid4()) + '.jpg'
with open(imageName, 'wb') as out_file:
print('saving image: ' + imageName)
shutil.copyfileobj(r.raw, out_file)
await ctx.send(f"text")
您的 imageName
不包含路径,因此它会在您当前的工作目录中打开。这有点不可预测。它也很容易修复。
from pathlib import Path
imageName = str(Path.home() / Path(str(uuid.uuid4()) + '.jpg'))
您当然可以将 Path.home()
替换为您喜欢的任何目标路径。
这段代码将一个不和谐的图像保存到它所在的文件夹中。我试图为保存文件设置一个目的地,但我没有在 shutil 网站上找到任何设置目的地的东西。我试图将目的地放在 shutil.copyfileobj 括号中,但这没有用。我对编码也比较陌生。
这是代码:
import uuid
import requests
import shutil
from discord.ext import commands
class filesaver:
@bot.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:
if url[0:26] == "https://cdn.discordapp.com":
r= requests.get(url, stream=True)
imageName = str(uuid.uuid4()) + '.jpg'
with open(imageName, 'wb') as out_file:
print('saving image: ' + imageName)
shutil.copyfileobj(r.raw, out_file)
await ctx.send(f"text")
您的 imageName
不包含路径,因此它会在您当前的工作目录中打开。这有点不可预测。它也很容易修复。
from pathlib import Path
imageName = str(Path.home() / Path(str(uuid.uuid4()) + '.jpg'))
您当然可以将 Path.home()
替换为您喜欢的任何目标路径。