触发式的文件操作watchdog与《サクラノ刻》

文章讲述了如何通过编写Python程序,使用watchdog库监控真机中的存档文件变化,并借助shutil库实时复制到sandboxie环境中,以实现机翻游戏时原文与翻译的同步。这种方法解决了sandboxie不能直接共享存档的问题。
摘要由CSDN通过智能技术生成

又整了些只有自己用的无聊功能,看来还是把这博客当作无聊的垃圾堆比较好(

尝试了一下《サクラノ刻》的机翻补丁,为内嵌式文本的优雅自然而泪流满面。

不过机翻终究是机翻,虽然大多数简单的对话都能大致看懂,但一些稍微复杂的结构就会让人莫名其妙,此时获取原文文本进行更精确的翻译就显得很有必要了。

为了实现原文和机翻同时出现,可以在真机中打开机翻版本,在sandboxie中打开原文版本。如此一来,只需要共享存档,就完成任务了。

sandboxie是沙盒,无法直接共享存档,所以换个思路,写一个python程序,一旦监控到真机中的存档文件发生了修改/增加,就把所有存档目录中的文件全部复制到sandboxie的存档目录中。

这里使用watchdog监控文件的修改,用shutil完成文件的复制,相当简单。

import shutil
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class MyHandler(FileSystemEventHandler):
    def on_modified(self, event):
        shutil.copy(event.src_path, "D:\\Sandboxie-Plus\\新建文件夹\\DefaultBox\\user\\current\\AppData\\Roaming\\枕\\サクラノ刻") # 写你自己的sandboxie中刻的存档路径
        print(f'File {event.src_path} has been modified')

    def on_created(self, event):
        shutil.copy(event.src_path, "D:\\Sandboxie-Plus\\新建文件夹\\DefaultBox\\user\\current\\AppData\\Roaming\\枕\\サクラノ刻")
        print(f'File {event.src_path} has been created')

if __name__ == "__main__":
    path = "C:\\Users\\用户名\\AppData\\Roaming\\枕\\サクラノ刻" # 写你自己的真机中刻的存档路径
    event_handler = MyHandler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

之后只要在打开刻之前先打开这个python文件就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值