【发布时间】:2016-11-30 15:08:42
【问题描述】:
我目前正在制作一个 Disocrd 机器人,它的一个特点是更新速度非常快(以最大限度地减少停机时间)。为此,在重启脚本中,我们有代码检查是否安装了 USB,如果是,则需要将其上的文件移动到 bots 文件夹中,进而更新 bot。
async def cmd_restart(self, channel):
await self.safe_send_message(channel, ":wave:")
await self.disconnect_all_voice_clients()
if os.path.exists(/dev/[usb ID]/Update.zip):
zip_ref = zipfile.ZipFile(/dev/[usb ID]/Update.zip, 'r')
zip_ref.extractall(/root/MusicBot/musicbot)
zip_ref.close()
raise exceptions.RestartSignal
问题是,随着机器人的增长,文件已迁移到多个文件夹中,并且此脚本不再起作用。 我们需要将文件提取到不同的位置,具体取决于它们的名称。
例如,'bot.py' 将进入 musicbot 文件夹,而 config.ini 将进入 config 文件夹,它们都将替换文件夹中的对应项。
由于机器人的性质,不会使用它创建新文件,只会替换现有文件。
请原谅我的漫无边际,解释起来感觉过于复杂。
【问题讨论】:
标签: python-3.x automation copy updates overwrite