当我想移动它时文件不存在
file does not exist when I want to move it
我正在预处理数据以对音频文件应用深度学习。我有一个长度不同的音频文件 (.wav) 目录,我的目标是使用 0 填充以使文件持续时间只有 10 秒。我还想移动其他目录中超过 10 秒的移动文件:
from pydub import AudioSegment
import os
import shutil
path_to_sound = r'my\path\to\sound'
path_to_export = r'my\path\to\export'
path_for_too_long = r'my\path\to\other_directory'
pad_ms= 10000
file_names=os.listdir(path_to_sound)
print(file_names) # ['30368.wav', '41348.wav', '42900.wav', '42901.wav', '42902.wav']
for name in file_names:
audio= AudioSegment.from_wav(os.path.join(path_to_sound, name))
if pad_ms > len(audio):
shutil.move(name,path_for_too_long )
else:
silence = AudioSegment.silent(duration=pad_ms-len(audio)+1)
padded = audio + silence
padded.export(os.path.join(path_to_export, name), format = 'wav')
当运行这时我得到了以下错误:
FileNotFoundError: [WinError 2] The specified file can not be found : '41348.wav' -> 'C:\Users\path_for_too_long\41348.wav'
...
FileNotFoundError: [Errno 2] No such file or directory: '41348.wav'
我认为错误是由于我使用的方式造成的shutil.move()
在你删除之前,尝试找出是否存在。
import os
path = ''
if os.path.exists(path):
func_to_delete()
shutil.move
需要完整路径,这里您提供的 name
对应于文件名而不是文件路径。
您必须更新行:
shutil.move(name, path_for_too_long)
至:
shutil.move(os.path.join(path_to_sound, name), path_for_too_long)
备注:如果您使用的是 Python 3.4+,则可以使用 pathlib 而不是 os 来处理路径。您可以找到 2 篇关于此的文章:
我正在预处理数据以对音频文件应用深度学习。我有一个长度不同的音频文件 (.wav) 目录,我的目标是使用 0 填充以使文件持续时间只有 10 秒。我还想移动其他目录中超过 10 秒的移动文件:
from pydub import AudioSegment
import os
import shutil
path_to_sound = r'my\path\to\sound'
path_to_export = r'my\path\to\export'
path_for_too_long = r'my\path\to\other_directory'
pad_ms= 10000
file_names=os.listdir(path_to_sound)
print(file_names) # ['30368.wav', '41348.wav', '42900.wav', '42901.wav', '42902.wav']
for name in file_names:
audio= AudioSegment.from_wav(os.path.join(path_to_sound, name))
if pad_ms > len(audio):
shutil.move(name,path_for_too_long )
else:
silence = AudioSegment.silent(duration=pad_ms-len(audio)+1)
padded = audio + silence
padded.export(os.path.join(path_to_export, name), format = 'wav')
当运行这时我得到了以下错误:
FileNotFoundError: [WinError 2] The specified file can not be found : '41348.wav' -> 'C:\Users\path_for_too_long\41348.wav'
...
FileNotFoundError: [Errno 2] No such file or directory: '41348.wav'
我认为错误是由于我使用的方式造成的shutil.move()
在你删除之前,尝试找出是否存在。
import os
path = ''
if os.path.exists(path):
func_to_delete()
shutil.move
需要完整路径,这里您提供的 name
对应于文件名而不是文件路径。
您必须更新行:
shutil.move(name, path_for_too_long)
至:
shutil.move(os.path.join(path_to_sound, name), path_for_too_long)
备注:如果您使用的是 Python 3.4+,则可以使用 pathlib 而不是 os 来处理路径。您可以找到 2 篇关于此的文章: