微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试使用 os.rename 重命名文件会引发 FileNotFoundError :[Errno 2]

如何解决尝试使用 os.rename 重命名文件会引发 FileNotFoundError :[Errno 2]

我得到了包含这些文件的目录:

drwxr-xr-x 2 kali kali 4096 May 19 04:50 .
drwxr-xr-x 5 kali kali 4096 May 19 05:11 ..
-rw-r--r-- 1 kali kali    0 May 19 04:50 jane_contact_07292018.csv
-rw-r--r-- 1 kali kali    0 May 19 04:50 jane_profile_07272018.doc
-rw-r--r-- 1 kali kali    0 May 19 04:50 janez_profile_11042019.doc
-rw-r--r-- 1 kali kali    0 May 19 04:50 kwood_pic_04032017.jpg
-rw-r--r-- 1 kali kali    0 May 19 04:50 kwood_profile_04022017.doc
-rw-r--r-- 1 kali kali  412 May 19 04:50 list.txt
-rw-r--r-- 1 kali kali    0 May 19 04:50 pchow_pic_05162019.jpg

我想将 jane_* 开头的两个文件重命名为 jdoez_*。这是我的代码

import sys
import os

path = os.listdir("/home/user/Downloads/student-02-c3f0f7fe19ef/data/")
for i in path:
        print(i)
        if "jane" in i:
                os.rename(i,i.replace("jane","jdoe"))

当我运行它时,我收到此错误消息:

janez_profile_11042019.doc
Traceback (most recent call last):
  File "/home/user/Downloads/student-02-c3f0f7fe19ef/scripts/changeJane.py",line 14,in <module>
    os.rename(i,"jdoe"))
FileNotFoundError: [Errno 2] No such file or directory: 'janez_profile_11042019.doc' -> 'jdoez_profile_11042019.doc'

解决方法

您应该添加此代码行。
它将默认操作系统目录更改为如下所示。

os.chdir("/home/user/Downloads/student-02-c3f0f7fe19ef/data/")

完整代码:

import sys
import os

os.chdir("/home/user/Downloads/student-02-c3f0f7fe19ef/data/")
path = os.listdir("/home/user/Downloads/student-02-c3f0f7fe19ef/data/")
for i in path:
        print(i)
        if "jane" in i:
                os.rename(i,i.replace("jane","jdoe"))
,

使用绝对路径重命名

import sys
import os

folder = "/home/user/Downloads/student-02-c3f0f7fe19ef/data/"

for file in os.listdir(folder):
        if "jane" in file:
                original = os.path.join(folder,file)
                renamed = os.path.join(folder,file.replace("jane","jdoe"))
                os.rename(original,renamed)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?