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

Change name of files in a directory: Python

我在目录 "dataset"

中有 .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'

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

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

由于您的 dataset_path 变量包含绝对路径,您可以确保 os.rename 尝试重命名的所有内容都是绝对路径,方法是使用 [=] 将每个文件名添加到 dataset_path 35=]()。即改变

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去重命名sound1.wav时,它会寻找C:/dataset/sound1.wav,应该没有问题。

另请注意,您可以使用 os 中的 getcwd() 功能查看当前工作目录。

import os

print(os.getcwd())