相关疑难解决方法(0)

Python中的EAFP原理是什么?

Python中"使用EAFP原理"是什么意思?你能提供任何例子吗?

python principles

123
推荐指数
3
解决办法
3万
查看次数

使用pathlib破坏性地将一个目录重命名为另一个现有目录

我有一个可能看起来像的目录结构

Data
    Current
        A
        B
        C
    Previous
        A
        X
Run Code Online (Sandbox Code Playgroud)

在尽可能简单/快速的步骤中,我想重命名CurrentPrevious包含内容并擦除原始内容,使其现在:

 Data
    Previous
        A
        B
        C
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西:

from pathlib import Path
src = Path('Data/Current')
dest = Path('Data/Previous')
src.replace(dest)
Run Code Online (Sandbox Code Playgroud)

文档让我希望这会起作用:

如果target指向现有文件或目录,则将无条件地替换它.

但它似乎确实是有条件的.我得到一个Directory not empty例外.我想我可以先递归删除Previous目录.这基本上是唯一的解决方案吗?或者有更好的方法来实现这一目标吗?

(我更喜欢pathlib,但如果os或者shutil是更好的锤子,我不反对他们)

(我在Linux上运行)

python file-rename python-3.x

5
推荐指数
1
解决办法
275
查看次数

Python:如何创建目录并在必要时覆盖现有目录?

我想创建一个新目录并删除旧目录(如果存在)。我使用以下代码:

if os.path.isdir(dir_name):
    shutil.rmtree(dir_name)
os.makedirs(dir_name)
Run Code Online (Sandbox Code Playgroud)

如果目录不存在,它会起作用。

如果目录确实存在并且程序正常运行,则会出错。(WindowsError:[错误 5] 访问被拒绝:'my_directory')

但是,如果目录已经存在并且程序在调试模式下逐行执行,它也可以工作。我想shutil.rmtree()并且makedirs()在他们的通话之间需要一些时间。

什么是正确的代码,以便它不会产生错误?

python

2
推荐指数
1
解决办法
6049
查看次数

标签 统计

python ×3

file-rename ×1

principles ×1

python-3.x ×1