将.tar从/ tmp移动到其他指定位置

时间:2018-05-18 06:04:16

标签: python

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

我试过了:

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是一个bash脚本,我在py脚本中使用它。这将生成.tar文件并将其保存在/tmp文件夹中, 但我希望每次从tmp文件夹中获取生成的.tar文件,并将其保存在桌面或所需位置。

1 个答案:

答案 0 :(得分:0)

可能有更好的方法,但首先想到的是创建一个监视程序来观察创建文件的文件夹,然后使用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。您也可以在一个线程中运行它。