小编dan*_* f.的帖子

复制和合并目录,不包括某些扩展名

我想复制具有相同结构的多个目录(子目录具有相同的名称)但将不同的内容复制到第三个位置并合并它们.同时,我想忽略某些文件扩展名而不是复制它们.


我发现单独的第一个任务可以通过库中的copy_tree()函数轻松处理distutils.dir_util.这里的问题是copy_tree()不能忽略文件; 它只是复制一切..

distutils.dir_util.copy_tree() - 示例

dirs_to_copy = [r'J:\Data\Folder_A', r'J:\Data\Folder_B']
destination_dir = r'J:\Data\DestinationFolder'
for files in dirs_to_copy:
    distutils.dir_util.copy_tree(files, destination_dir)
    # succeeds in merging sub-directories but copies everything.
    # Due to time constrains, this is not an option.
Run Code Online (Sandbox Code Playgroud)

对于第二个任务(使用"排除文件"选项进行复制),这次有copytree()来自shutil库的功能.现在的问题是它无法合并文件夹,因为目标目录不能存在.

shutil.copytree() - 例子

dirs_to_copy = [r'J:\Data\Folder_A', r'J:\Data\Folder_B']
destination_dir = r'J:\Data\DestinationFolder'
for files in dirs_to_copy:
    shutil.copytree(files, destination_dir, ignore=shutil.ignore_patterns("*.abc"))
    # successfully ignores files with "abc" extensions but fails 
    # at the second iteration since …
Run Code Online (Sandbox Code Playgroud)

python windows copy-paste

11
推荐指数
1
解决办法
1593
查看次数

UIKit Dynamics:识别圆形形状和边界

我正在编写一个应用程序,我使用UIKit Dynamics来模拟不同圈子之间的相互作用.

我用以下代码创建了我的圈子:

self = [super initWithFrame:CGRectMake(location.x - radius/2.0, location.y - radius/2, radius, radius)];
if (self) {
    [self.layer setCornerRadius: radius /2.0f];
    self.clipsToBounds = YES;
    self.layer.masksToBounds = YES;
    self.backgroundColor = color;
    self.userInteractionEnabled = NO;
}
return self;
Run Code Online (Sandbox Code Playgroud)

其中location表示圆的所需位置,半径表示半径.

然后,我通过执行以下操作将这些圈子添加到不同的UIBehaviours:

[_collision addItem:circle];
[_gravity addItem:circle];
[_itemBehaviour addItem:circle];
Run Code Online (Sandbox Code Playgroud)

itemBaviour定义如下:

_itemBehaviour = [[UIDynamicItemBehavior alloc] initWithItems:@[square]];
_itemBehaviour.elasticity = 1;
_itemBehaviour.friction = 0;
_itemBehaviour.resistance = 0;
_itemBehaviour.angularResistance = 0;
_itemBehaviour.allowsRotation = NO;
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,我的圈子表现为正方形.当以某种方式击中时,它们会获得角动量并失去速度.如果它们再次碰撞,有时角动量再次恢复到速度.这对于正方形来说看起来很正常,但是当视图是圆的时候,就像在我的情况下一样,这种行为看起来很奇怪而且不自然.

打开一些调试选项,我做了这个截图: 小圆圈实际上是一个正方形

如你所见,圆圈显然是一个正方形.

所以我的问题是,如何创建一个真正的圆形UIVIew并在UIKit Dynamics中表现如此?

core-animation uikit ios uikit-dynamics

3
推荐指数
1
解决办法
1408
查看次数