在python脚本运行时防止将文件复制到目录?

时间:2015-10-29 16:15:34

标签: python launchd process-management

我有一个<Window x:Class="StackoverflowHelpWPF5.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:[YOURLOCALNAMESPACEHERE]" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <ControlTemplate TargetType="Button" x:Key="beforeClicking"> <Border Name="border" Background="Transparent" BorderThickness="1" BorderBrush="Black"> <ContentPresenter/> </Border> </ControlTemplate> <ControlTemplate TargetType="Button" x:Key="afterClicking"> <Border Name="border" Background="Transparent" BorderThickness="10" BorderBrush="Black"> <ContentPresenter/> </Border> </ControlTemplate> </Window.Resources> ... <Button Template="{StaticResource beforeClicking}" > <i:Interaction.Behaviors> <local:ChangeTemplateBehavior ControlTemplate1="{StaticResource afterClicking}" ControlTemplate2="{StaticResource beforeClicking}"></local:ChangeTemplateBehavior> </i:Interaction.Behaviors> </Button> 目录,其中包含一个"Process"脚本,可以进行一些图像处理并上传到s3。

脚本扫描process.py目录中的子目录并处理其中的文件。

我的问题是我每隔几个小时就会通过launchd调用process.py,但我遇到了一个问题,脚本运行时文件(多个gig子目录)被放入“处理“目录。

如何处理这样的事情?

1 个答案:

答案 0 :(得分:0)

我选择一些原子文件系统操作作为所有权标志。

我可能会使用os.rename()。在复制文件时,有问题的子目录将命名为dir/subdir.DONTPROCESSME。当复制所有数据并且子目录处于一致状态时,拷入脚本将:

os.rename('dir/subdir.DONTPROCESSME', 'dir/subdir.DOPROCESSME')

同样,launchd启动的过程将具有如下代码:

for subdir in os.listdir('dir'):
    if subdir.endswith('.DONTPROCESSME'): continue