更改目录中文件的名称:Python

更改目录中文件的名称:Python,python,python-3.x,python-os,Python,Python 3.x,Python Os,我在“dataset”目录中有.wav文件 错误:FileNotFoundError:[WinError 2]系统找不到指定的文件:“sound1.wav”->“0.wav” 错误是什么意思?文件位于目录中,代码可以访问,为什么不使用系统?正如Zerodf指出的,问题可能是您当前的工作目录与您指定的数据集路径目录不同。因此,当os.rename转到重命名sound1.wav时,它会在当前工作目录中查找它(可能与dataset\u path不同),找不到它,并抛出该错误 由于dataset\u p

我在“dataset”目录中有.wav文件

错误:FileNotFoundError:[WinError 2]系统找不到指定的文件:“sound1.wav”->“0.wav”


错误是什么意思?文件位于目录中,代码可以访问,为什么不使用系统?

正如Zerodf指出的,问题可能是您当前的工作目录与您指定的
数据集路径
目录不同。因此,当
os.rename
转到重命名
sound1.wav
时,它会在当前工作目录中查找它(可能与
dataset\u path
不同),找不到它,并抛出该错误

由于
dataset\u path
变量包含一个绝对路径,因此可以使用os.path.join()将每个文件名固定到
dataset\u path
上,从而确保
os.rename
尝试重命名的所有内容都是绝对路径。也就是说,改变

os.rename(old_name, str(i) + '.wav')

然后,当
os.rename
转到rename
sound1.wav
时,它将查找
C:/dataset/sound1.wav
,它应该可以毫无问题地找到它

还请注意,您可以使用
os
中的
getcwd()
函数查看当前的工作目录

import os

print(os.getcwd())

您尝试了绝对路径吗?添加到@ BIPUL点,也考虑您当前的工作目录(当有疑问时总是使用完整路径)。使用<代码> OS.Posi.No.(…)>代码>代替文件路径的字符串连接更安全。@ NoSnkkWh Aha,谢谢。我试图记住那是什么命令。更新答案。对于那些不知道的人,os.path.join()使用系统的默认目录分隔符(“/”或“\\”等)将文件路径的两部分连接在一起。
os.rename(os.path.join(dataset_path, old_name), os.path.join(dataset_path, str(i) + '.wav'))
import os

print(os.getcwd())