os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案

简介: os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案

 这是社区交流区一位同学提出的问题,原提问链接:https://bbs.csdn.net/topics/603461429

原代码及报错:

image.gif


image.gif

原因及解决方案:

image.gif存在问题的代码:

image.gif

这里写一些关于这个问题的小笔记供大家参考:

1、在os.rename之前先os.chdir(),在对文件重命名之前为其指定路径。

# path = 需要指定的路径
os.chdir(path)
os.rename(new_file_name_list, new_file_name)

image.gif

2、使用os.renames代替os.rename。os.rename仅更改了最上层目录的名称,因此,它会在“ C:\Users\ASUS\Desktop\test”中查找“ test(1).jpg”(该目录不存在嗷)。os.renames调用rename(),在调用之前,使用makedirs()递归创建目录。本质上os.renames()应该是通过makedirs()来实现递归的。

3、对于os.rename(oldpath, newpath),它的功能本质类似于把文件oldtail(文件夹或者文件均可)移到newhead文件夹下并重命名为newtail(文件或者文件夹)。它只可以更改oldtail部分,不能更改oldhead部分,即不可以更改上级目录部分。如果oldhead存在,oldtail不存在时,报错:FileNotFoundError: [WinError 2] 系统找不到指定的文件。

os.rename(oldpath,newpath)
oldpath(oldhead, oldtail)
newpath(newhead, newtail)

image.gif

       对于os.renames(oldpath, newpath),它既可以只更改oldtail部分,又可以只更改oldhead部分,还可以同时更改oldhead和oldtail,对于newpath的newhead没有限制,只要有权限访问,如果newhead不存在,直接创建。

os.renames(oldpath, newpath)
oldpath(oldhead, oldtail)
newpath(newhead, newtail)

image.gif

学习链接:Python os.rename()和os.renames()用法的区别_Jock2018的博客-CSDN博客

4、os.listdir的文件名是相对路径(os.listdir只返回文件名);它将在当前工作目录中搜索,该目录是os.getcwd()(不会因为变量命名更改而进行更改)

修改后代码:

import os
import re
import sys
def renameall():
    fileList = os.listdir('../test_pic')
    print("修改前:" + str(fileList))
    os.chdir('../test_pic')
    n = 0
    for fileName in fileList:
        n += 1
        a = '2021_backgroud'
        pat = ".+\.(jpg)"
        pattern = re.findall(pat, fileName)
        a = a + str(n)
        os.renames(fileName, (a + '.' + pattern[0]))
        print(os.listdir('../test_pic'))
        print("重命名成功")
    sys.stdin.flush()
    print("修改后:" + str(os.listdir('../test_pic')))
renameall()

image.gif

运行结果:

image.gif

相关文章
|
30天前
|
移动开发 Android开发 开发者
移动应用与系统:探索移动开发与操作系统的协同进化###
本文深入探讨了移动应用开发与移动操作系统之间错综复杂的关系,揭示了技术进步如何推动用户体验的飞跃。通过案例分析和技术解析,本文阐述了开发者在适应不断变化的操作系统环境中面临的挑战与机遇,以及这种互动如何塑造了我们的数字生活。 ###
|
1月前
|
人工智能 Linux Android开发
移动应用与系统:探索移动应用开发和操作系统的奥秘
【10月更文挑战第5天】 这篇文章将深入探讨移动应用与系统的关键技术,包括移动应用开发的基本流程、工具和技术,以及移动操作系统的核心原理和架构。我们将从浅入深,逐步揭开移动应用与系统的神秘面纱,帮助读者更好地理解和掌握这一领域的知识。
36 2
|
5天前
|
人工智能 Android开发 数据安全/隐私保护
移动应用与系统:探索开发趋势与操作系统的协同进化####
当今时代,移动应用不再仅仅是简单的软件工具,它们已成为扩展智能手机及平板等设备功能的关键。本文旨在深入分析当前移动应用的开发趋势,探讨移动操作系统的最新进展及其对应用开发的影响,并阐述两者如何相互促进、协同进化,共同推动移动互联网技术向前发展。 ####
|
7天前
|
移动开发 人工智能 Android开发
移动应用与系统:探索移动开发与操作系统的协同进化####
当今数字化时代,移动设备已成为日常生活不可或缺的一部分。本文旨在深入探讨移动应用开发与移动操作系统之间的紧密关系及其相互影响,揭示技术创新如何推动这一领域的发展。通过分析当前主流移动操作系统的特点、移动应用的开发趋势以及两者间的互动机制,本文为开发者和用户提供了一个全面了解该领域的窗口。 ####
|
5天前
|
开发工具 Android开发 iOS开发
移动应用与系统:涵盖移动应用开发、移动操作系统等相关话题####
本文深入探讨了移动应用开发和移动操作系统的复杂世界。从移动应用开发的基本概念到移动操作系统的核心功能,再到两者如何相互作用以提供无缝的用户体验,本文全面涵盖了这一领域的各个方面。无论你是开发者、技术爱好者还是普通用户,这篇文章都将为你提供有价值的见解。 ####
13 1
|
10天前
|
人工智能 物联网 Android开发
移动应用与系统:探索开发趋势与操作系统的协同进化####
本文深入探讨了移动应用开发的当前趋势,以及这些趋势如何与移动操作系统的发展相互影响、协同进化。通过分析最新的技术动态、市场数据及用户行为变化,本文旨在为开发者提供关于未来移动应用开发方向的洞察,并讨论操作系统层面的创新如何促进或制约应用的发展。 ####
|
13天前
|
安全 物联网 Android开发
移动应用与系统:探索开发趋势与操作系统的演进####
【10月更文挑战第29天】 本文深入探讨了移动应用开发的最新趋势与挑战,并分析了主流移动操作系统(如Android、iOS)的发展动态。通过对比不同系统的技术特点和市场表现,揭示了移动应用生态系统的复杂性及其对开发者的影响。此外,还讨论了跨平台开发工具的兴起如何改变应用开发流程,以及这些变化对未来移动计算领域的潜在影响。 ####
30 4
|
12天前
|
安全 Android开发 iOS开发
移动应用与系统:探索移动应用开发与操作系统的协同进化###
【10月更文挑战第29天】 本文深入探讨了移动应用开发与移动操作系统之间的紧密联系与相互促进作用,分析了当前主流移动操作系统(如iOS、Android)的最新特性及其对应用开发的影响,并展望了未来移动应用与系统协同发展的新趋势。通过具体案例分析,揭示了开发者如何利用系统特性优化应用性能,提升用户体验,同时指出了跨平台开发工具的兴起如何进一步模糊了应用与系统间的界限,推动了整个移动互联网生态系统的繁荣发展。 ###
34 2
|
17天前
|
人工智能 Android开发 数据安全/隐私保护
移动应用与系统:探索移动应用开发及操作系统的未来趋势####
本文深入探讨了移动应用开发和移动操作系统的现状、挑战与未来发展趋势。通过分析当前主流的移动操作系统(如Android和iOS)以及移动应用开发的最新技术,旨在为开发者提供有价值的参考,帮助他们更好地应对未来的挑战。 ####
|
21天前
|
前端开发 测试技术 调度
移动应用与系统:探索开发与操作系统的奥秘####
【10月更文挑战第22天】 本文深入剖析了移动应用的开发流程与移动操作系统的核心原理,揭示了两者如何相互依存、共同推动移动互联网的发展。从应用架构设计到操作系统性能优化,全方位解读移动生态的技术细节,为开发者和用户提供有价值的参考。 ####
29 5