在python中重命名单个文件

时间:2016-06-19 23:27:08

标签: python

我正在尝试重命名音频文件,但我不断获得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)

3 个答案:

答案 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())