【问题标题】:Can't rename a directory that contains thousands of files无法重命名包含数千个文件的目录
【发布时间】:2019-11-09 08:12:59
【问题描述】:

我要重命名的目录有大约 5k parquet 文件。

不幸的是,os 和 shutil 库对此没有帮助

import os, shutil

os.rename('/dbfs/FileStore/AllInOneParquets/SdId=791221', '/dbfs/FileStore/AllInOneParquets/test1')
shutil.move('/dbfs/FileStore/AllInOneParquets/SdId=791221', '/dbfs/FileStore/AllInOneParquets/test2')

上述两次尝试均失败。 os.rename 给了我以下异常:

OSError: [Errno 7] Argument list too long

shutil.move 尝试在后台使用 os.rename,开始移动文件而不是真正重命名。

5k 文件只是一个测试,我的目标远不止于此。有办法吗?

【问题讨论】:

标签: python-3.x


【解决方案1】:

试试谷歌:python如何将文件从一个目录移动到另一个目录,你会找到答案:)

How to move a file in Python

我觉得你应该在管理员模式下运行代码

【讨论】:

  • 我问的不是这个
  • 其实已经有了,因为移动文件你可以指定另一个名字并且会改变它。从d:\folder\folder2\*d:\folder\folder3\* 的示例
  • 我知道,我在上面试过了。问题是当我在其中有数千个文件时,库不会简单地重命名文件夹。实际上它移动了数据,这就是问题所在。
  • 哦,在这种情况下,您需要创建一个循环来读取所有文件并搜索旧路径并替换它和文件内部,因为其中一些会有一些特定于的行在老路上搜索...不会是一件容易的事,但也不复杂
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多