python - 将 .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 文件夹中获取生成的文件并将其保存在桌面或所需位置。
解决方案
可能有更好的方法,但首先想到的是创建一个看门狗来监视创建文件的文件夹,然后使用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。您也可以在线程中运行它。
推荐阅读
- java - Webview 无法在现有代码上运行打印 Oreo 下方的错误
- android - 通过套接字发送包含曲目编号、标题、艺术家、专辑、流派和持续时间的歌曲列表?
- inno-setup - 在 Inno Setup 中以随机数作为参数执行程序?
- sql - SQL Server 中的魔术表和临时(系统版本)表之间的区别?
- scala - 如何在带有循环的spark中创建一个when表达式
- php - 如何限制输入字段中的空格?
- java - 从另一个文件夹导入包
- css - 在 Html 中,如何将作为按钮的标签与按钮垂直对齐,以便正确对齐
- python - PIL:fromarray 在 P 模式下给出了错误的对象
- java - 从 Java Jackson 的 JSON 输出中删除大括号和方括号?