首页 > 解决方案 > 将 .tar 从 /tmp 移动到其他指定位置

问题描述

我的脚本将生成一个随机.tar文件并将文件保存在 tmp 文件夹中,但我想.tar每次从 tmp 文件夹中获取生成的文件并将其保存到桌面或所需位置。

我试过了:

for i in xrange(n):
        print "---------------"
        print " **** Creating Your Licene File **** "
        os.system("./createDevlicense.sh -f {}  -d {}  -a {} -t {} -w {} -g {}". format(flavour,days,apid,type,warning,grace))

以上./createDevlicese.sh是我在 py 脚本中使用的 bash 脚本。这将生成一个.tar文件并将其保存在/tmp文件夹中,但我想.tar每次从 tmp 文件夹中获取生成的文件并将其保存在桌面或所需位置。

标签: python

解决方案


可能有更好的方法,但首先想到的是创建一个看门狗来监视创建文件的文件夹,然后使用shutil.move将文件移动到所需位置。

你可以试试这个:

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

class Watcher:

    def __init__(self):

        self.directory = 'directory/to/watch'
        self.observer = Observer()

    def run(self):
        event_handler = Handler()
        self.observer.schedule(event_handler, self.directory, recursive=True)
        self.observer.start()

        try:
            while True:
                time.sleep(5)
        except:
            self.observer.stop()
        print("Watchdog error!")

        self.observer.join()


class Handler(FileSystemEventHandler):

    def process(self, event):

        if event.event_type == 'created':
            shutil.move(event.src_path, 'desired/directory/to/save/')


    def on_created(self, event):

        self.process(event)

if __name__ == '__main__':
    w = Watcher()
    w.run()

请注意,这是python3。您也可以在线程中运行它。


推荐阅读