首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有一种万无一失的方法让系统有足够的时间在运行复制树之前删除文件夹?

是否有一种万无一失的方法让系统有足够的时间在运行复制树之前删除文件夹?
EN

Stack Overflow用户
提问于 2014-02-01 15:59:19
回答 1查看 2.2K关注 0票数 6

我有一些需要更新的目录--我使用了以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for newdir in newdirs:
    olddir = newdir.replace('h:\\','G:\\').replace('_academic','')
    shutil.rmtree(newdir)
    shutil.copytree(olddir,newdir)

我偶尔会犯个错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WindowsError: [Error 5] Access is denied: 'h:\\mydir\\sub1\\sub2\\sub3\\sub4\\sub5'

由于错误不会发生在前面的目录上,所以我决定原因必须是一些访问冲突??rmtree调用和复制树之间发生的时间太少,所以我修改了代码以浪费一些时间。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for newdir in newdirs:
    olddir = newdir.replace('h:\\','G:\\').replace('_academic','')
    shutil.rmtree(newdir)
    for item in range(0,20,1):
        pass
    shutil.copytree(olddir,newdir)

这使得错误消失,旧目录被复制到新位置。

我不喜欢这个,因为这看起来很烂--甚至对我来说也是如此。

  1. 我是不是弄错了错误(冲突)的原因?
  2. 在我们开始复制树之前,是否有更好的方法来确保系统有足够的时间来完成rmtree操作?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-01 16:04:31

如果当你等待的时候错误消失了,那么你很可能没有错误的原因。因此,遵循等待的想法,但有目的地等待,这可能会稍微好一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for newdir in newdirs:
    olddir = newdir.replace('h:\\','G:\\').replace('_academic','')
    shutil.rmtree(newdir)
    while os.path.exists(newdir): # check if it exists
        pass
    shutil.copytree(olddir,newdir)

如果出现一些奇怪的错误,阻止删除目录,但不引发异常,理论上while循环可能永远运行,但我发现这是非常不可能的。

我一点也不为这个解决方案感到骄傲,,但是如果没有新的知识,这应该比任意的延迟更能防止愚昧。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21505313

复制
相关文章
将数组旋转90度(旋转图像)
You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise).
用户5513909
2023/04/25
1.7K0
将数组旋转90度(旋转图像)
面试题-python3 将N(N<10000)个人排成一排,从第1个人开始报数;如果报数是M的倍数就出列
某大厂迎来了新入职的大学生,现在需要为每个新同事分配一个工号。 人力资源部同事小V设计了一个方法为每个人进行排序并分配最终的工号,具体规则是: 将N(N<10000)个人排成一排,从第1个人开始报数;如果报数是M的倍数就出列,报到队尾后则回到对头继续报, 直到所有人都出列;最后按照出列顺序为每个人依次分配工号
上海-悠悠
2021/06/24
1K0
巨头宣布:裁员超90%,补偿N+3
推荐阅读: 《ChatGPT大规模封号...》 《又爆了...》 1 裁员90%。 3月马上快过去的时候,又一个巨头宣布裁员,并且力度极大裁员90%。 这家公司就是 Hulu 北京,可能很多读者不了解这是一个什么样的公司,网上帮大家查了一下。 hulu是美国的一个视频网站。该网站由美国国家广播环球公司(NBC Universal)和福克斯在2007年3月共同注册成立。 2019年,被迪士尼和康卡斯特收购。总部位于美国洛杉矶,并在包括洛杉矶、纽约、芝加哥、北京等地设有共计8个办公室及研发中心。 北京是仅次于
纯洁的微笑
2023/04/04
5980
巨头宣布:裁员超90%,补偿N+3
HDOJ 2028 Lowest Common Multiple Plus(n个数的最小公倍数)
Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。
谙忆
2021/01/20
6620
Android 读写文件的N种写法
Android 读写文件的N种写法(待续。。。) 读取raw文件 // 读取raw文件 private void rawRead(){ String ret = ""; try { InputStream is = getResources().openRawResource(R.raw.my_raw); int len = is.available(); byte []buffer = new byte[len]; is.read(buff
阳光岛主
2019/02/19
3.2K0
python将整数均分成N等分
在python中,需要将整数均分成N等分。python divide integers N equal parts sum
机器学习和大数据挖掘
2019/07/01
3.7K0
MapReduce:N keys,N files
MapReduce中,不管是map阶段还是reduce阶段,二者的输入和输出都是key,value类型的值。现在有个需求是根据map阶段返回值key的个数,生成相应个数的文件。也就说一个key写到一个文件中,每个文件只能包含一个key。
YG
2018/12/14
8230
Linux文件随机抽取N行
有时候需要从大文件中随机抽取N行出来进行模拟,但是用python或者别的语言感觉不太方便,linux下直接分割感觉会更快捷。一般可以考虑以下的方法:
生信编程日常
2020/05/26
8.8K0
常见算法的时间复杂度 Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…
说实话,我是真的不懂算法。但是,我知道一个算法的好坏,通常时间复杂度是一个评价的指标之一。
业余草
2019/06/20
8.6K0
Python如何将图像向右旋转90度
如果直接套用PIL和OpenCV3图像处理库的旋转函数,旋转后保存的图像会留黑边,下面给出我实际测试后旋转图像不留黑边的代码:
嵌入式视觉
2022/09/05
2.1K0
Python如何将图像向右旋转90度
python读取文件末尾N行
# -*- coding: cp936 -*- import os,sys,re def lastline(): global pos while True: pos = pos - 1 try: f.seek(pos, 2) #从文件末尾开始读 if f.read(1) == '\n': break except: #到达文件第一行,直接读取
py3study
2020/01/13
3.3K0
python删除N天前文件
#/usr/bin/env python # -*- coding:utf-8 -*- #Author='Jun' import os import sys import time def removefiles(beftime, defalutpath='.'):     for i in os.listdir(path):         filename = path + os.sep + i         if os.path.getmtime(filename) < beftime:     
py3study
2020/01/09
6330
MapReduce:N keys,N files(二)
如果你看了MapReduce:N keys,N files(一)这篇文章,并按其介绍的方法尝试去将N个key映射到N的文件中,你会发现分割后数据量比分割前的要多,并且有些文件不能正常读取。 用presto读取的话,可能会报这种错:
YG
2018/12/14
8060
python与分形0012 - 【教程】旋转的彩色N边形(圆盘)
注:gif动图上传有1M限制,这个图被压缩了91.83%,原图更酷炫,看文末视频。
滚神大人
2021/12/01
6250
python与分形0012 - 【教程】旋转的彩色N边形(圆盘)
i18n、g11n、l10n
I18N --是“Internationalization” 的缩写,通常缩写为“I18N” 。中间的 18 代表在首字母“I” 和尾字母“N” 之间省略了 18 个字母。单词“Internationalization” 翻译成中文是“ 国际化” 的意思-是使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可适应多种语言和文化习俗的过程。真正的国际化要在软件设计和文档开发过程中,使产品或软件的功能和代码设计能处理多种语言和文化习俗,具有良好的本地化能力。
Yiiven
2022/12/15
1.4K0
N皇后
说明: N皇后问题是一个以国际象棋为背景的问题:如何能够在N×N的国际象棋棋盘上放置N个皇后,使得任何一个皇后都无法直接吃掉其他的皇后。为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 解法: N个皇后中任意两个不能处在同一行,所以每个皇后必须占据一行,及一列。我们采用回溯法的思想去解。首先摆放好第0行皇后的位置,然后在不冲突的情况下摆放第1行皇后的位置。到第j行时,如果没有一个位置可以无冲突的摆放皇后,则回溯到第j-1行,寻找第j-1行皇后的下一个可以摆放的位置。 总结一下,用回溯法解
mathor
2018/06/22
7370
PHP 画图形 N行N列
写一个函数需要一个参数,根据这个参数输出一个图形 <?php /* 算法二、写一个函数需要一个参数,根据这个参数输出一个图形, 比如:输入4: 4 5 6 7 15
Marco爱吃红烧肉
2021/12/24
9280
linux定时删除N天前的文件(文件夹)
近期在业务中,给定的磁盘只有22T容量,为了避免爆盘,业务需要定时清除数据,根据网上的资料总结了一下设置方法:可以使用find命令
码农编程进阶笔记
2021/07/19
13.2K0
文件侠告诉你,Python复制文件的N种姿势!
其实这段代码从实现上看没有任何问题,也非常完美,不过这里有一个问题。项目使用了Python语言,而Python语言拥有强大的API后援团。对于复制文件这样的基础操作,不可能没有现成的API,难道非要写n行代码才能搞定吗?尽管代码实现没有任何问题,但有现成的API(这里指的是官方原生的API)为何不用呢?而且Python的API都是经过成千上万人验证的,出错几率很低。如果自己写代码,很可能会引入未知的bug。所以,这里对广大初学者的建议是:如果有现成API,应该尽量使用现成的API,没有必要什么都自己实现(想炫耀自己牛叉的除外)。
蒙娜丽宁
2021/02/19
13.5K0
文件侠告诉你,Python复制文件的N种姿势!
linux定时删除N天前的文件(文件夹)
近期在业务中,给定的磁盘只有22T容量,为了避免爆盘,业务需要定时清除数据,根据网上的资料总结了一下设置方法:可以使用find命令
全栈程序员站长
2022/07/19
2.4K0

相似问题

如何将N x N矩阵旋转90度?

56

旋转M*N矩阵(90度)

20

90*n次连续旋转矩阵

12

配置GhostScript以旋转页面输出,而不是90度的倍数(PDF => PNG)

15

解释N×N矩阵旋转90度的一种算法

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文