首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文件重命名为自定义名称时出错

将文件重命名为自定义名称时出错
EN

Stack Overflow用户
提问于 2019-02-02 12:47:10
回答 2查看 21关注 0票数 0

无法重命名位于桌面文件夹中的旧文件。这里有三个文件:item.pdfitem1.pdfitem2.pdf。我现在要做的是将这些文件重命名为new_item.pdfnew_item1.pdfnew_item2.pdf

我尝试使用以下脚本:

代码语言:javascript
运行
复制
import os

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    os.rename(item,"new_name"+".pdf")

执行上述脚本会引发以下错误。而文件夹地址是准确的:

代码语言:javascript
运行
复制
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'item.pdf' -> 'new_name.pdf'

如何将这三个文件从文件夹中重命名为item.pdfitem1.pdf new_item.pdfnew_item1.pdf new_item2.pdf E 243

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-02 12:50:06

试试这个:

代码语言:javascript
运行
复制
import os
import re

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    match = re.search(r'\d+$', item)
    endnum = ""
    if match:
      endnum = match.group()
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_name{}.pdf".format(endnum)))

或者,如果你不想使用re

代码语言:javascript
运行
复制
import os

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    new_name = item.replace('item', 'new_item')
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_name{}.pdf".format(new_name)))
票数 1
EN

Stack Overflow用户

发布于 2019-02-02 12:55:02

您需要在os.rename中指定文件的完整路径。

类似于:

代码语言:javascript
运行
复制
for item in filepath:
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_item.pdf"))

或将当前工作目录更改为存在文件的目录:

os.chdir("/your/file/path")

然后运行你的代码。

另见https://docs.python.org/2/library/os.html#os.rename

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54493222

复制
相关文章

相似问题

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