1

我在“数据集”目录中有 .wav 文件

import os
dataset_path = 'C:/dataset'

def change_filenames(dataset_path):

    i = 0  # target filename
    for old_name in os.listdir(dataset_path):
        os.rename(old_name, str(i) + '.wav')
        i+=1    

change_filenames(dataset_path)

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

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

4

1 回答 1

2

正如 Zerodf 指出的那样,问题很可能是您当前的工作目录与dataset_path您指定的目录不同。因此,当os.rename转到 rename时sound1.wav,它​​会在您当前的工作目录中查找它(可能与 不同dataset_path),找不到它,并抛出该错误。

由于您的变量包含绝对路径,因此您可以通过使用 os.path.join()将每个文件名附加到每个文件名上dataset_path,以确保os.rename尝试重命名的所有内容都是绝对路径。dataset_path也就是改变

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

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

然后当os.rename去 rename时sound1.wav,它​​会寻找C:/dataset/sound1.wav,它应该没有问题地找到它。

另请注意,您可以getcwd()使用os.

import os

print(os.getcwd())
于 2017-12-19T19:50:21.037 回答