更改目录中文件的名称: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())
我在目录 "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())