Trying to rename files with os.rename throws a FileNotFoundError : [Errno 2]
Trying to rename files with os.rename throws a 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, i.replace("jane", "jdoe"))
FileNotFoundError: [Errno 2] No such file or directory: 'janez_profile_11042019.doc' -> 'jdoez_profile_11042019.doc'
您应该添加此代码行。
它改变了默认的 OS 目录如下。
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)
我得到了这个目录,里面有这些文件:
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, i.replace("jane", "jdoe"))
FileNotFoundError: [Errno 2] No such file or directory: 'janez_profile_11042019.doc' -> 'jdoez_profile_11042019.doc'
您应该添加此代码行。
它改变了默认的 OS 目录如下。
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)