在文件名中使用正斜杠重命名文件(python)

2024-04-24 15:17:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一堆旧文件(90年代),我们正准备导入一个新系统。其中一些文件的文件名中有一个正斜杠/我们需要在导入之前重命名这些文件(它们最终将在Azure中结束)。在

我们有一些python代码可以遍历目录:

for root, dirs, files in os.walk(base_path):
  for filename in files:
    path = os.path.abspath(os.path.join(root, filename))

然后尝试重命名它不喜欢使用os.rename的任何文件。除了在文件名中有正斜杠的文件之外,这一切都很好——即使使用上面计算的path在这些文件上失败。在

os.path.exists中,我们尝试替换:

  • 带正斜杠的冒号
  • 带转义正斜杠的冒号/
  • 带转义冒号的冒号:

我们总是得到一个False回来。以及在尝试os.path.rename时出现“没有这样的文件或目录”错误。文件名中有一个正斜杠,但操作系统将其视为冒号:-至少os.walk将文件名报告为。在

我们还得到一个IOError: [Errno 2] No such file or directory

^{pr2}$

我们不能在Finder中手动重命名文件。您会注意到Finder显示带有正斜杠的文件名(抱歉,没有rep-so链接到图像): finder rename error

或者从命令行-文件名显示在这里,并带有冒号: terminal - no such file or directory error

Windows不会列出文件资源管理器或Powershell中的文件。在

所以我想知道有没有人知道如何重命名这些文件,或者以某种方式去掉正斜杠?在

提前谢谢!在


Tags: 文件pathin目录foros文件名root