首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python重命名数百个长文件名

使用Python重命名数百个长文件名
EN

Stack Overflow用户
提问于 2020-09-14 06:49:05
回答 3查看 394关注 0票数 0

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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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:

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

EN

回答 3

Stack Overflow用户

发布于 2020-09-14 09:42:17

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

Linux:

代码语言:javascript
复制
touch 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'

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

Windows:

代码语言:javascript
复制
c:\Users\cp>echo 'foo' > zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

The filename, directory name, or volume label syntax is incorrect.
票数 1
EN

Stack Overflow用户

发布于 2021-03-30 05:02:57

特定于Windows要克服MAX_PATH限制的问题,请替换

代码语言:javascript
复制
os.rename(filename,new_file_name)

使用

代码语言:javascript
复制
os.rename("\\\\?\\" + filename, "\\\\?\\" + new_file_name)
票数 0
EN

Stack Overflow用户

发布于 2021-08-26 15:50:44

为什么不试试linux shell呢?

代码语言:javascript
复制
c=0
a="a"
t=".txt"
for file in `ls key*`; do
    newfile="$a$c$t"
    mv $file $newfile
    let c=c+1
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63876273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档