我正在尝试重命名音频文件,但我不断获得OSError: [Errno 2] No such file or directory
。
在我的程序中,每个用户都有一个保存用户文件的目录。我通过执行以下操作获取每个用户的路径:
current_user_path = os.path.join(current_app.config['UPLOAD_FOLDER'], user.username)
/Users/johnsmith/Documents/pythonprojects/project/files/john
现在我想获取我想要重命名的现有文件的路径:
current_file_path = os.path.join(current_user_path,form.currentTitle.data)
/Users/johnsmith/Documents/pythonprojects/project/files/john/File1
重命名文件的路径为:
new_file_path = os.path.join(current_user_path, form.newTitle.data)
/Users/johnsmith/Documents/pythonprojects/project/files/john/One
现在我只是运行重命名命令:
os.rename(current_file_path, new_file_path)
答案 0 :(得分:2)
如果操作系统说没有这样的文件或目录,那就是福音真理。您对文件的位置做了很多假设,构建了一个路径并重命名它。可以肯定的是,没有current_file_path
命名的文件或new_file_path
的目录。
尝试os.stat(current_file_path)
,同样用os.stat(os.posixpath.dirname(new_file_path))
仔细检查新文件路径。一旦你做对了,如果你有权限,os.rename
就可以了。
答案 1 :(得分:2)
您可以使用os.rename重命名单个文件。
避免
OSError: [Errno 2] No such file or directory.
检查文件是否存在。
这是工作示例:
import os
src = "D:/test/Untitled003.wav"
dst = "D:/test/Audio001.wav"
if os.path.isfile(src):
os.rename(src, dst)
答案 2 :(得分:0)
尝试将当前工作目录更改为您要使用的目录。下面的代码应该简单介绍一下你应该怎么做:
import os
print (os.getcwd())
os.chdir(r"D:\Python\Example")
print (os.getcwd())
print ("start")
def rename_files():
file_list= os.listdir(r"D:\Python\Example")
print(file_list)
for file_name in file_list:
os.rename(file_name,file_name.translate(None,"0123456789")) rename_files()
print("stop")
print (os.getcwd())