首页 > 解决方案 > 使用 Python 重命名数百个长文件名

问题描述

我想遍历数百个文件名并重命名它们。问题是文件名超过 260 个字符,并且包含使 os.rename 不可用的字符。

下面的代码使用常规文件名运行,但不使用前面描述的文件:

import os
filepath = "path"
path = os.chdir(filepath)
count = 1
for filename in os.listdir(path):
   new_file_name = f"{count}.csv"
   os.rename(filename,new_file_name)
   count += 1

当我使用长文件名运行时,我得到:

Traceback (most recent call last):
  File "C:\Users\sarah\Desktop\Python\program.py", line 7, in <module>
    os.rename(filename,new_file_name)
FileNotFoundError: [WinError 3] The system cannot find the path specified:

有没有办法遍历这些文件名并重命名它们?

标签: pythonpython-3.x

解决方案


在 Linux 的 Windows 中,文件名不能超过 255 个字符。

Linux:

touch 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'

touch: cannot touch ‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’: File name too long

视窗:

c:\Users\cp>echo 'foo' > zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

The filename, directory name, or volume label syntax is incorrect.

推荐阅读